2011-10-07 153 views
1

我正在试图防止一个ListView内的复选框,再上一个双击事件检查。如何处理Windows消息

我已经做了:

listView.SelectedItems[0].Checked = (listView.SelectedItems[0].Checked) ? false : true; 

但检查事件被调用和方形盒子里面勾选闪烁,所以我真的觉得它吮吸困难时期。

我偶然发现了这样的回答: Prevent ItemChecked event on a ListView from interfering with SubItemClicked using C#

这似乎是这样做的最佳方式,但我不知道如何使这项工作。我尝试阅读一些关于通知,消息等的内容,但发现没有足够的东西可以将它应用到我的代码中。

可能有人流下了我一些光在这吗?

非常感谢!

回答

2

简单实现ItemCheck事件。您可以通过更改e.NewValue属性来取消检查。一个愚蠢的例子:

private void listView1_ItemCheck(object sender, ItemCheckEventArgs e) { 
     // Disable checking odd numbered items 
     if (e.Index % 2 == 1) { 
      e.NewValue = e.CurrentValue; 
     } 
    } 
+0

感谢您的帮助,但我似乎无法在我的ListView的事件中发现任何ItemCheck事件? : -/ – TomShreds

+0

即使我没有找到它,我决定对自己的事件添加到我的designer.cs文件(this.listView.ItemCheck + =新System.Windows.Forms.ItemCheckEventHandler(this.listView_ItemCheck);) – TomShreds

+0

你的代码不会阻止双击发生的检查: - /我会尝试从这个事件中解决问题。 – TomShreds