在C#Windows窗体中,通过单击鼠标或按tab键高亮显示文本框

在C#Windows窗体中,通过单击鼠标或按tab键高亮显示文本框,c#,winforms,loops,event-handling,C#,Winforms,Loops,Event Handling,我试图突出显示黄色表单上的活动文本框。我总共有60个文本框。因此,我的想法是,当用户按下文本框时,背景颜色应变为黄色,或者如果用户按下tab键,则无论它指向哪个文本框,也应变为黄色。我有鼠标点击一个工作,但我不能让标签键进入文本框的工作。我真的需要进入文本框的tab键才能工作,因为我的tab索引排列得很好,所以有一个自然的流程。 这是我的当前代码,用于通过鼠标单击所需的文本框(在事件输入时)来突出显示文本框: 但是,如果我按tab键进入文本框,它不会高亮显示黄色,但我刚才留下的前一个字段会高亮显

我试图突出显示黄色表单上的活动文本框。我总共有60个文本框。因此,我的想法是,当用户按下文本框时,背景颜色应变为黄色,或者如果用户按下tab键,则无论它指向哪个文本框,也应变为黄色。我有鼠标点击一个工作,但我不能让标签键进入文本框的工作。我真的需要进入文本框的tab键才能工作,因为我的tab索引排列得很好,所以有一个自然的流程。 这是我的当前代码,用于通过鼠标单击所需的文本框(在事件输入时)来突出显示文本框:

但是,如果我按tab键进入文本框,它不会高亮显示黄色,但我刚才留下的前一个字段会高亮显示黄色。有人知道这个问题的原因和解决方法吗?

使用和事件-将所有文本框挂接到相同的事件处理程序,用于
输入
离开
,并使用
发送方
参数将背景颜色更改为黄色/白色(取决于事件)

像这样的事情应该让你开始:

private void TextBox_Enter(Object sender, EventArgs e) 
{
   ((TextBox)sender).BackColor = Color.Yellow;
}

private void TextBox_Leave(Object sender, EventArgs e) 
{
   ((TextBox)sender).BackColor = Color.White;
}
这样,无论用户是通过单击鼠标还是按tab按钮输入文本框,只要文本框被聚焦,它将获得黄色背景,并且一旦另一个控件获得焦点,它将返回为白色。

使用和事件-将所有文本框挂接到相同的事件处理程序,用于
Enter
Leave
,并使用
Sender
参数将背景颜色更改为黄色/白色(取决于事件)

像这样的事情应该让你开始:

private void TextBox_Enter(Object sender, EventArgs e) 
{
   ((TextBox)sender).BackColor = Color.Yellow;
}

private void TextBox_Leave(Object sender, EventArgs e) 
{
   ((TextBox)sender).BackColor = Color.White;
}

这样,无论用户是通过单击鼠标还是按tab按钮输入文本框,都无关紧要——只要文本框对焦,它就会显示黄色背景,而一旦另一个控件对焦,它就会恢复为白色。

好主意。这是完美的,没有想到使用sender对象,因为它在for循环中更加简单/实用。非常感谢。很乐意帮忙:-)好主意。这是完美的,没有想到使用sender对象,因为它在for循环中更加简单/实用。非常感谢。很乐意帮忙:-)