Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何为TextBox数组创建处理事件_C#_Wpf - Fatal编程技术网

C# 如何为TextBox数组创建处理事件

C# 如何为TextBox数组创建处理事件,c#,wpf,C#,Wpf,我创建数组: TextBox[] textarray = new TextBox[100]; 然后,在循环设置此参数中,位于uniformGrid1中的所有项数组 textarray[i] = new TextBox(); textarray[i].Height = 30; textarray[i].Width = 50; uniformGrid1.Children.Add(textarray[i]); 如何创建事件单击或双击所有项目数组? 对

我创建数组:

TextBox[] textarray = new TextBox[100];
然后,在循环设置此参数中,位于uniformGrid1中的所有项数组

textarray[i] = new TextBox();
        textarray[i].Height = 30;
        textarray[i].Width = 50;
        uniformGrid1.Children.Add(textarray[i]);
如何创建事件单击或双击所有项目数组?

对不起,我说的是英语。

只需添加您的单击或双击事件处理程序。例如,要捕获双击事件,请执行以下操作:

textarray[i] = new TextBox();
textarray[i].Height = 30;
textarray[i].Width = 50;
textarray[i].MouseDoubleClick += this.OnMouseDoubleClick;

uniformGrid1.Children.Add(textarray[i]);
要使上述方法起作用,您的类将需要以下方法:

void OnMouseDoubleClick(object sender, MouseButtonEventArgs e)
{
    // Do something
}

创建一个单击事件处理程序,然后使用它订阅文本框的单击事件,如下所示:

textarray[i].Click += new EventHandler(textbox_Click);

...

void textbox_Click(object sender, EventArgs e)
{
    // do something 
}

如果要对每个文本框执行的操作相同,那么单击处理程序就足够了。

您不需要
新的EventHandler
构造函数,您可以直接添加
TextBoxFromArray\u单击
,这实际上是现在推荐的方法。如果需要取消订阅,为每个项目创建一个新的委托会使取消订阅变得更加困难。@Aaronaught,有趣。谢谢你的提醒。@Aaronaugh:谢谢你,伙计,你已经按照你的建议进行了编辑了,就像上次编辑时你的代码格式弄乱了一样。
textarray[i].Click += TextBoxFromArray_Click;
textarray[i].DoubleClick += TextBoxFromArray_DoubleClick;
textarray[i].Click += new EventHandler(textbox_Click);

...

void textbox_Click(object sender, EventArgs e)
{
    // do something 
}