Split an event handler into multiple controls

In my Windows Form application written in C #, I have a bunch of buttons. When a custom mouse hovers over a button, I want to change the border of the button.

I currently have several instances of the following (copy for each button):

private void btnStopServer_MouseEnter(object sender, EventArgs e)
{
    oldColor = btnStopServer.FlatAppearance.BorderColor;
    btnStopServer.FlatAppearance.BorderColor = mouseOverColor;
}

private void btnStopServer_MouseLeave(object sender, EventArgs e)
{
    btnStopServer.FlatAppearance.BorderColor = oldColor;
}

Since I have many buttons, the code for changing the color of the button border takes up a lot of space.

Is there an easier way to do this?

+5
source share
1 answer

MouseEnter MouseLeave , ( ). , Visual Studio, , Button. , MouseEnter MouseLeave.

, , :

private void btnWithHoverBorder_MouseEnter(object sender, EventArgs e)
{
    Button eventButton = (Button) sender;
    oldColor = eventButton.FlatAppearance.BorderColor;
    eventButton.FlatAppearance.BorderColor = mouseOverColor;
}

private void btnWithHoverBorder_MouseLeave(object sender, EventArgs e)
{
    Button eventButton = (Button) sender;
    eventButton.FlatAppearance.BorderColor = oldColor;
}

, oldColor ? , - "", MouseEnter , , MouseLeave. , Button .tag, .

:

private void btnWithHoverBorder_MouseEnter(object sender, EventArgs e)
{
    Button eventButton = (Button) sender;
    eventButton.tag = eventButton.FlatAppearance.BorderColor;
    eventButton.FlatAppearance.BorderColor = mouseOverColor;
}

private void btnWithHoverBorder_MouseLeave(object sender, EventArgs e)
{
    Button eventButton = (Button) sender;
    eventButton.FlatAppearance.BorderColor = (Color)eventButton.tag;
}

( , "-", , . Object, , - , , , . Object, - , , , , , .., ).

+5

All Articles