文本框焦点检查

Ale*_*lex 4 c# winforms

我有一个win应用程序表单,有3个文本框和按钮作为拨号盘(它是一个触摸屏应用程序).​​..

当按下拨号盘按钮时,我想检查这3个文本框中的哪一个具有焦点,并向其附加文本.

就像是:

if (tbx1.Focused == true)
{
   tbx1.Text += "0";
}
else if (tbx2.Focused == true)
{
   tbx2.Text += "0";
}
else
{
   tbx3.Text += "0";
}
Run Code Online (Sandbox Code Playgroud)

但是这不起作用......它会一直将文本附加到tbx3.有什么建议?

谢谢 :)

Pat*_*ick 14

单击按钮时出现问题,按钮将获得焦点,而不是任何文本框.

您可以做的是订阅LostFocus事件并记住焦点最后的文本框.

就像是:

private TextBox lastFocused;
private void load(object sender, EventArgs e){
    foreach (TextBox box in new TextBox[] { txtBox1, txtBox2, txtBox3 }){
        box.LostFocus += textBoxFocusLost;
    }
}

private void textBoxFocusLost(object sender, EventArgs e){
    lastFocused = (TextBox)sender;
}
Run Code Online (Sandbox Code Playgroud)