我创建数组:
TextBox[] textarray = new TextBox[100];
然后在循环中设置此参数,所有项目数组都位于uniformGrid1
中textarray[i] = new TextBox();
textarray[i].Height = 30;
textarray[i].Width = 50;
uniformGrid1.Children.Add(textarray[i]);
如何创建事件点击或DoubleClick所有项目数组?
对不起我的英文。
答案 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
}
如果您要对每个文本框执行的操作相同,则只需一次单击处理程序即可。