C# 更改“单击按钮”事件的背景色会导致更改悬停颜色

C# 更改“单击按钮”事件的背景色会导致更改悬停颜色,c#,button,click,backcolor,C#,Button,Click,Backcolor,有一个问题,我有一套按钮,应该像标签按钮的行为。我首先将所有按钮的背景色更改为正确的颜色,然后将单击的按钮的背景色更改为更亮的颜色 编辑:Tab pressed是分配给每个按钮(即btnFile、btnEdit、btnView、btnDocket、BTNWidget和btnHelp)的单击事件的方法 EDIT2:为了澄清,这些不是作为选项卡控件一部分的实际选项卡按钮。它们是工具箱中的常规按钮 private void tabPressed(object sender, EventArgs e)

有一个问题,我有一套按钮,应该像标签按钮的行为。我首先将所有按钮的背景色更改为正确的颜色,然后将单击的按钮的背景色更改为更亮的颜色

编辑:Tab pressed是分配给每个按钮(即btnFile、btnEdit、btnView、btnDocket、BTNWidget和btnHelp)的单击事件的方法

EDIT2:为了澄清,这些不是作为选项卡控件一部分的实际选项卡按钮。它们是工具箱中的常规按钮

private void tabPressed(object sender, EventArgs e)
    {
        Button tabButton = (Button)sender;
        btnFile.BackColor = btnEdit.BackColor = btnView.BackColor = btnDocket.BackColor = 
            btnWidgets.BackColor = btnHelp.BackColor = Color.FromArgb(1, 26, 29, 42);
        Console.WriteLine(tabButton.Text);
        switch(tabButton.Text)
        {
            case "File":
                btnFile.BackColor = Color.FromArgb(1, 39, 43, 62);
                break;
            case "Edit":
                btnEdit.BackColor = Color.FromArgb(1, 39, 43, 62);
                break;
            case "View":
                btnView.BackColor = Color.FromArgb(1, 39, 43, 62);
                break;
            case "Docket":
                btnDocket.BackColor = Color.FromArgb(1, 39, 43, 62);
                break;
            case "Widgets":
                btnWidgets.BackColor = Color.FromArgb(1, 39, 43, 62);
                break;
            case "Help":
                btnHelp.BackColor = Color.FromArgb(1, 39, 43, 62);
                break;
            default:
                break;
        }
    }
但是,完成此操作后,似乎只有单击按钮的悬停颜色会更改,而其他按钮的悬停颜色通常是彩色的


我不确定是什么原因造成的。我想这可能是因为只有悬停事件的背景色才被更改,因为背景色更改时它处于悬停“状态”,但我不确定。

实际上您编写的代码与单击或悬停事件没有任何关系,重要的是哪个事件
tabPressed
方法处理

您可以在设计时单击按钮并选择其事件,并确保为单击事件选择了
tabPressed

要在运行时以编程方式执行此操作,请执行以下操作:

btnFile.Click += tabPressed;  
还请注意,您不需要开关盒,只需将其应用于事件的发送者(单击的按钮):


对不起,我应该补充更多的信息。Tab pressed是我创建的一个函数,它被分配给每个按钮,即btnFile、btnEdit、btnView、btnDocket、BTNWidget和btnHelp@user3864563是的,我明白了,我说确保你已经把它分配给了他们的点击事件,只要再检查一下。这个方法被分配给了每个按钮的点击事件,是的
private void tabPressed(object sender, EventArgs e)
{
   //your color rest codes here
   Button tabButton = (Button)sender;
   tabButton.BackColor = Color.FromArgb(1, 39, 43, 62);
}