2
我有一个包含选项卡,包含一个用户控件,包含与复选框的列表视图的WinForform。Winforms ListView检查负载
private void lvwRoles_ItemCheck(object sender, System.Windows.Forms.ItemCheckEventArgs e)
{
if (!m_loading && m_locked)
{
e.NewValue = e.CurrentValue;
return;
}
从父窗体调用的方法(在用户控件中)为listview分配它的项目(一些选中)。这是在父窗体加载时完成的。
我的问题是,当我第一次点击相应的选项卡时,发生了ItemCheck
。 这导致m_loading
状态变量很久以前是错误的。
因此,当用户控件是m_locked
时,没有项目被检查。
有没有办法解决这个问题,而不改变如何填充列表视图?
很不清楚。使用调试器,在这个方法上设置一个断点。调用堆栈会告诉你为什么事件被触发。 –
@HansPassant当然,我已经尝试过。它显示[非用户代码],主要,[非用户代码],ItemCheck。这个事件显然被框架推迟直到gui被加载。我的问题很清楚。 –