c# - 以编程方式创建的 CheckBox 不会触发 Checked/Unchecked 事件
问题描述
我有一个简单的 WPF 应用程序,它使用“框架”进行多页导航。其中一个页面为创建的每个复选框创建了一系列CheckBoxes
并添加了几个处理程序 ( Checked
/ Unchecked
)。按预期工作并且可以通过CheckBoxes
编程访问它们,可以通过单击来选中或取消选中它们,但是如果我单击,则不会触发这两个事件。
这是创建的CheckBoxes
:
ModuleStackpanels[i].Children.Add(ModuleCheckBoxes[i]);
StackPanel.SetZIndex(ModuleCheckBoxes[i], 2);
ModuleCheckBoxes[i].Checked += new RoutedEventHandler(ModuleCheckBoxClick);
ModuleCheckBoxes[i].Unchecked += new RoutedEventHandler(ModuleCheckBoxClick);
我从 0 到 30 的地方。然后我有处理程序:
private void ModuleCheckBoxClick(object sender, RoutedEventArgs e)
{
int CheckBoxCounter = 0;
for(int i=0;i<30;i++)
{
if (ModuleCheckBoxes[i].IsChecked == true) CheckBoxCounter++;
}
if(CheckBoxCounter > 1)
{
Button_QueryStatus.IsEnabled = false;
}
}
但什么都没有被解雇。有人有想法吗?
解决方案
尝试使用CheckedChanged
代替Checked
and Unchecked
。
例如:
public bool checkedthecheckbox { get; set; }
CheckBox testchbox = new CheckBox();
private void Form1_Load(object sender, EventArgs e)
{
testchbox.CheckedChanged += new EventHandler(testchbox_CheckedChanged);
}
void testchbox_CheckedChanged(object sender, EventArgs e)
{
if (testchbox.Checked)
checkedthecheckbox = true;
else
checkedthecheckbox = false;
}
在你的情况下:
ModuleStackpanels[i].Children.Add(ModuleCheckBoxes[i]);
StackPanel.SetZIndex(ModuleCheckBoxes[i], 2);
ModuleCheckBoxes[i].CheckedChanged += new EventHandler(ModuleCheckBoxClick);
private void ModuleCheckBoxClick(object sender, RoutedEventArgs e)
{
int CheckBoxCounter = 0;
for(int i=0;i<30;i++)
{
if (ModuleCheckBoxes[i].IsChecked == true) CheckBoxCounter++;
}
if(CheckBoxCounter > 1)
{
Button_QueryStatus.IsEnabled = false;
}
}
推荐阅读
- wordpress - Wordpress 多站点安装失败
- javascript - 如何重置 dougtesting.net 的动画?
- javascript - 反应钩子错误:无效的钩子调用。Hooks 只能在函数组件的主体内部调用
- http-status-code-413 - Hotjar 返回 413 请求实体太大
- html - 如何让 fontawesome 图标将我带到网页(例如我的 GitHub 个人资料)?
- python - 如何使用 Robot Framework 解析电子邮件正文
- java - VMWare java SDK:什么时候没有可用的 PerfMetricID 报告数据?
- tensorflow - 从 keras 外科医生那里去除层的问题
- qt - 在 qt.conf 中设置 QT_SYSROOT
- javascript - 评论部分 - 重播按钮 - 无法正常工作 - JavaScript