简体   繁体   中英

How to set mouse hover for ALL buttons?

I have bunch of buttons on my form. And I would like to make it a bit nicer so button changing color and font to bold when mousei s over it seems like good idea. I would appreciate any help
button.BackColor = Color.Cyan; button.Font = new Font(button.Font.Name, button.Font.Size, FontStyle.Bold);

EDIT: this is working for me:

private void button1_MouseEnter(object sender, EventArgs e)
    {
        ((Button)sender).BackColor = Color.PaleTurquoise;
        ((Button)sender).Font = new Font(((Button)sender).Font.Name, ((Button)sender).Font.Size, FontStyle.Bold);
    }

    private void button1_MouseLeave(object sender, EventArgs e)
    {
        ((Button)sender).BackColor = Color.WhiteSmoke;
        ((Button)sender).Font = new Font(((Button)sender).Font.Name, ((Button)sender).Font.Size, FontStyle.Regular);
    }

(there is button1_mousenter (or mouseleave) set as action for every button

Just select them all in your Form view and go to the mousehover event. and write your code like this:

private void button_mousehover (object sender, EventArgs e)
    {
        ((Button)sender).BackColor = Color.Cyan;
        ((Button)sender).Font = new Font(((Button)sender).Font.Name, ((Button)sender).Font.Size, ((Button)sender).FontStyle.Bold;
    }

You can add MouseEnter and MouseLeave events to your buttons that changes the buttons' colors.

https://msdn.microsoft.com/en-us/library/system.windows.forms.control.mouseenter(v=vs.110).aspx

https://msdn.microsoft.com/en-us/library/system.windows.forms.control.mouseleave(v=vs.110).aspx

// bind handler to MouseEnter Event
this.yourButton1.MouseEnter += new System.EventHandler(this.allButtons_MouseEnter);

this.yourButton2.MouseEnter += new System.EventHandler(this.allButtons_MouseEnter);

// bind handler to MouseLeave Event
this.yourButton1.MouseLeave += new System.EventHandler(this.allButtons_MouseLeave);

this.yourButton2.MouseLeave += new System.EventHandler(this.allButtons_MouseLeave);

// enter handler
private void allButtons_MouseEnter(object sender, System.EventArgs e) 
{
    Button btn = (Button)sender;
    btn.BackColor = Color.Cyan;
    btn.Font = new Font(btn.Font.Name, btn.Font.Size, FontStyle.Bold);
}

// leave handler
private void allButtons_MouseLeave(object sender, System.EventArgs e) 
{
    Button btn = (Button)sender;
    btn.BackColor = Color.DeepPink; // whatever your original color was
    btn.Font = new Font(btn.Font.Name, btn.Font.Size, FontStyle.Regular);
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM