有一个问题,就是我有一组按钮应该像选项卡按钮那样工作。我首先将所有按钮的BackColors更改为适当的颜色,然后将被单击的按钮的BackColor更改为更亮的颜色。
编辑:按下Tab键是分配给每个按钮的Click事件的方法,即btnFile,btnEdit,btnView,btnDocket,btnWidgets和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;
}
}
但是,完成此操作后,似乎仅更改了被单击按钮的悬停颜色,而其他按钮的悬停颜色通常是彩色的。
我不确定是什么原因造成的。我以为这可能是由于仅在悬停事件中更改了BackColor的事实,因为更改BackColor时它处于悬停的“状态”,但我不确定。
答案 0 :(得分:0)
实际上,您的代码与click或hover事件无关,重要的是tabPressed
方法将处理哪个事件。
您可以在设计时单击按钮并选择其事件,并确保为单击事件选择了tabPressed
。
要在运行时以编程方式执行此操作,请执行以下操作:
btnFile.Click += tabPressed;
还请注意,您不需要switch-case
,您可以将其简单地应用于事件的发送者(单击过的按钮):
private void tabPressed(object sender, EventArgs e)
{
//your color rest codes here
Button tabButton = (Button)sender;
tabButton.BackColor = Color.FromArgb(1, 39, 43, 62);
}