To add a "trick" I use with my M.S. joystick.
I went to Radio Shack and bought a pray bottle of Precision Electronics Cleaner for @ $10 bucks.
When I have a button going bad I will take apart my J/S and liberally spray this on the offending button while I am pushing it. (I use tweezers for the 4 way hat buttons and they work well for button pushing) Try to avoid getting this stuff on your fingers. It is is caustic stuff.
I have also in the past used a shallow glass bowl I had (we talking REALLY small and shallow) filled with a bit of the contact cleaner and laid the circuit board so just the buttons were submerged. (this is again for the hat buttons)
I lost the glass bowl in my house fire so I don't use that method anymore. Both work.
I have also fixed the base buttons a couple of times but, for me, it seems that hat buttons are the ones I have the most problems with.
I don't think the buttons are going "bad" as much as they are getting gummed up with crud and this fixes that. It took some trial and error but once I was able to work this stuff into the button and let it dry (sometimes it has taken 2-4 applications) the button works just fine.