次のようなコードがあります。
private void treeview1_AfterCheck(object sender, TreeViewEventArgs e)
{
// I tried this, but not helped
// treeview1.BeginUpdate();
if (e.Node.Level == 0)
{
foreach (TreeNode item in e.Node.Nodes)
{
item.Checked = e.Node.Checked;
}
}
// this is a method that executes slow enough,
// that I can click multiple times before it ends
RefreshListOfSelectedItems();
// I tried this, but not helped
// treeview1.EndUpdate();
}
基本的に-これは「チェック済み」状態を子ノードにコピーすることになっていますが、問題は、チェックボックスを十分に速くクリックすると、イベントハンドラーの実行がクリックできるよりも遅いため、すべてが台無しになることです。