How can I make the image size smaller on a button?
Try buttonname.BackgroundImageLayout = ImageLayout.Stretch;
or change this property in designer.
My solution was to use an ImageList control. You can define the size the images are to be displayed (e.g. I set the ImgageList ImageSize property to 16x16) and then set the button.ImageList and ImageIndex properties instead of the Image property.
I think if you use the Paint event of the Button you can draw any image in any size that you want. if it isn't possible to re-size the image you can do that in this way.