如何在C#中检测当前聚焦的文本框?

时间:2015-01-17 04:06:57

标签: c#

我在表单中有20个文本框和40个按钮,我想点击40个按钮中的任意一个,然后它会将值插入到20个文本框的当前聚焦或活动文本框中。

但我不知道如何在C#中处理这个问题,请问任何想法会很棒吗?

谢谢,

3 个答案:

答案 0 :(得分:1)

如何使用textBox的数组(如4个文本框的示例) 假设您有4个文本框,其名称为tbx0tbx1tbx2tbx3

TextBox[] array = new TextBox[4]{tbx0, tbx1, tbx2, tbx3};

然后当你想插入一个文字时:

for(int i=0; i<4; i++)
{
   if(array[i].Focused)
   {
      array[i].Text = yourText;
   }
}

答案 1 :(得分:1)

我会为最后一个聚焦文本框保留一个变量,并将其设置在textbox_LostFocus上。因为当您单击按钮时,文本框将失去控制权。然后你可以调用那个文本框.Text属性并设置它

前代码:

    textBox.LostFocus += (sender, e) => { lastTextBox = sender as TextBox; }
按钮点击事件中的

    .
    .
    lastTextBox.Text = textToSet;
    .
    .

编辑:

为了满足具有多个控件的条件,您可以在创建文本框时使用循环,并仅使用一行处理为每个控件设置事件。如果这不能满足您的要求,请告诉我,我可以调整。

答案 2 :(得分:0)

你可以做到

TextBox focusedTxt = Controls.OfType<TextBox>().FirstOrDefault(x => x.Focused);