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

时间:2010-03-21 18:28:30

标签: 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]);

如何创建事件点击或DoubleClick所有项目数组?
对不起我的英文。

3 个答案:

答案 0 :(得分:2)

只需添加您的点击或双击事件处理程序即可。例如,要捕获双击事件:

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
}

答案 1 :(得分:2)

 public static void blah()
        {
            TextBox[] textarray = new TextBox[100];
            List<TextBox> textBoxList = new List<TextBox>();
            for (int i = 0; i < textarray.Length; i++)
            {
                textarray[i] = new TextBox();
                textarray[i].Height = 30;
                textarray[i].Width = 50;

                // events registration
                textarray[i].Click += 
                      new EventHandler(TextBoxFromArray_Click);
                textarray[i].DoubleClick += 
                      new EventHandler(TextBoxFromArray_DoubleClick);
            }
        }

        static void TextBoxFromArray_Click(object sender, EventArgs e)
        {
            // implement Event OnClick Here
        }

        static void TextBoxFromArray_DoubleClick(object sender, EventArgs e)
        {
            // implement Event OnDoubleClick Here
        }

修改

根据 @Aaronaugh 更好/推荐的事件注册方式:建议:

textarray[i].Click += TextBoxFromArray_Click;
textarray[i].DoubleClick += TextBoxFromArray_DoubleClick;

答案 2 :(得分:0)

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

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

...

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

如果您要对每个文本框执行的操作相同,则只需一次单击处理程序即可。