C# 如何在windows窗体应用程序中突出显示所选项目(选项卡索引位置)?

C# 如何在windows窗体应用程序中突出显示所选项目(选项卡索引位置)?,c#,winforms,C#,Winforms,我希望能够在我的页面上突出显示所选项目,因为它很忙,而且有很多事情要做。用户将无法访问鼠标,只能访问键盘,因此当前他们可以快速点击按钮并输入所需操作(如果您必须知道,这是一种快速数据输入类应用程序) 我希望能够突出显示选中的按钮(因此,当您当前通过tab键时,它将选择一个按钮,但它不是很明显,当选中时,它只是在其周围有一个轻微的边框) 我知道您可以使用focusEnter和focusLeave事件,但我希望尽可能避免使用focusEnter和focusLeave事件,因为页面上有太多的按钮,我不

我希望能够在我的页面上突出显示所选项目,因为它很忙,而且有很多事情要做。用户将无法访问鼠标,只能访问键盘,因此当前他们可以快速点击按钮并输入所需操作(如果您必须知道,这是一种快速数据输入类应用程序)

我希望能够突出显示选中的按钮(因此,当您当前通过tab键时,它将选择一个按钮,但它不是很明显,当选中时,它只是在其周围有一个轻微的边框)


我知道您可以使用focusEnter和focusLeave事件,但我希望尽可能避免使用focusEnter和focusLeave事件,因为页面上有太多的按钮,我不得不使用几乎相同的代码创建大量重复事件。

我建议您创建自己的类,该类派生自
按钮,然后自己处理背景画。这将允许您使用背景外观/颜色和/或边框效果。

您可以而且应该只使用两个常见的事件处理程序来处理所有按钮的
Enter
Leave
事件

使用
sender
参数访问按钮:

private void buttons_Leaveobject sender, EventArgs e)
{
    ((Button)sender).BackColor = SystemColors.Control;
    ((Button)sender).ForeColor = SystemColors.ControlText;
}

private void buttons_Enter((object sender, EventArgs e)
{
    ((Button)sender).ForeColor = SystemColors.Control;
    ((Button)sender).BackColor = SystemColors.ControlText;
}
使用你自己关于如何突出焦点按钮的想法;这有点过分:


当然,带有
平面外观的按钮可以自己高亮显示,因为它们的状态有单独的颜色。

您到底想要什么?您可以并且应该为所有按钮使用两个常见的事件处理程序focusEnter和focusLeave事件!使用(按钮)发送器参数访问按钮