Do you want to create a button without a frame, but display different images when the user hovers over it with the mouse? Here's how you can do it:
Add an ImageList control to your form by adding two images, one for the normal button mode and one for when the mouse is overhanging.
Add your button and set the following properties:
FlatStyle = Flat
FlatAppearance.BorderColor (and possibly MouseOverBackColor and MouseDownBackColor ) to your form background color
ImageList = ImageList added to the form
ImageIndex to the index value of your regular image
Match the MouseHover and MouseLeave events for the button as follows:
private void button1_MouseHover(object sender, EventArgs e) {
I believe this will give you the visual effect you are looking for.
source share