事件处理程序函数不会为创建的动态复选框触发
本文关键字:动态 复选框 创建 程序 函数 事件处理 | 更新日期: 2023-09-27 18:14:00
首先,我必须提到我是c#的新手。
我正在用xaml和c#开发一个windows 8 metro应用程序。我动态地创建了一个复选框数组,并为每个复选框分配了一个指针事件。
奇怪的问题是,指针事件没有触发注册函数。
如果我使用设计工具创建相同的复选框(我使用的是visual Studio 2012),奇怪的是,这个功能这次确实起作用了。因为我直到运行时才知道要创建的复选框的数量,所以使用设计工具来处理复选框并不是一种选择。
我正在运行的代码如下:
CheckBox[] chk=new CheckBox[count];
int x=20; //Width of each checkbox(to be incremented for every iteration)
for( int i = 0; i < count ; i++ )
{
chk[i] = new CheckBox();
chk[i].HorizontalAlignment = HorizontalAlignment.Left;
chk[i].Margin = new Thickness(1100, x, 0, 0);
chk[i].VerticalAlignment = VerticalAlignment.Top;
chk[i].Height = 30;
chk[i].Width = 35;
chk[i].PointerPressed += new PointerEventHandler(chkhandler);
gridit.Children.Add(chk[i]);
x = x + 35;
}
private static void chkhandler(object obj, PointerRoutedEventArgs arg)
{
textblock1.Text="Testing"; //Sample Textblock
}
复选框在运行时被选中,但相关的函数不起作用。
提前致谢
Try;
- 将事件处理程序设置为公共&非静态,
- 确保没有人在吃这些活动。
这个呢:
chk[i].AddHandler(PointerPressedEvent,
new PointerEventHandler(SomeButton_PointerPressed), true);