我有数字按钮,按下时会在不同的文本框中显示数字。现在我的问题是,我想检查哪个文本框具有焦点,以便按下的数字将输入该文本框中。 我的代码:
private void btn_one_Click(object sender, EventArgs e)
{
if (txt_one.Focused==true)
{
txt_one.Text += btn_one.Text;
}
else if (txt_two.Focused==true)
{
txt_two.Text += btn_one.Text;
}
}
现在我的问题是上面的代码无法解决问题,解决方案是什么?我甚至用过这样的东西
private void btn_one_Click(object sender, EventArgs e)
{
if (txt_one.Focus()==true)
{
txt_one.Text += btn_one.Text;
}
else if (txt_two.Focus()=true)
{
txt_two.Text += btn_one.Text;
}
}
在上述两种情况下,都会在两个文本框中输入文本。任何解决方案。
答案 0 :(得分:3)
这个问题有点棘手(根据我处理Enter, Focus, LostFocus, Leave
事件的经验,所有这些事情有时让你头痛很多,如果可能的话,你应该避免与他们打交道),当你点击{{ {1}},您可以知道的当前Button
控件恰好是Focused
(Button
是访问它的一种简短方法)。因此,解决方案是我们必须记录焦点ActiveControl
的轨迹,将其保存在参考中并在需要时使用它。实际上,如果您的TextBox
之外的控件不是重点,我们必须将变量TextBoxes
重置为null:
lastFocused