从上面我们知道引起多选ListView控件的行时所选择的行的复选框会改变成为选中状态的原因,那么我们就可以想办法来避免这种情况。
因为就ListView控件而言,无论一次改变多少个项的复选框的值,都是通过触发每一个项的ItemCheck事件来实现的,所以笔者的思路是通过判断是否是多选来决定是否允许改变项的Checked的值,如下代码所示:
Private Sub ListView1_ItemCheck(ByVal sender As Object, ByVal e As System.Windows.Forms.ItemCheckEventArgs) Handles ListView1.ItemCheckTry
If ListView1.SelectedItems.Count > 1 Then
e.NewValue = e.CurrentValue
End If
Catch ex As Exception
End Try
End Sub
http://www.qqread.com/book/myvbnet/mylistview.html
以上代码的意义为:判断ListView控件目前是否是多选(SelectedItems.Count大于1的时候表示选择的项大于1),如果是多选的情况,则ItemCheck(代码中为e)的值不改变。
现在我们运行,测试多选是否改变复选框的值,如下图三所示(注意:第三项的复选框为多选前选中的):

图三:多选不改变复选框的值
经过添加以上代码后,多选不会再改变复选框的值了。
不过新的问题出来了,此时多选状态下我们也无法主动改变一个项的复选框状态,只能单选一项才能改变该项的复选框状态,如果你有更好的解决方案,可以单击这里到我们巧巧读书网的论坛发表你的高见。
文字:http://www.qqread.com/book/myvbnet/mylistview.html相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
相关专题
- .NET移动与嵌入式技术 (5963篇文章)
- .NET开发手册 (5664篇文章)
- 用vb.net实现闹钟提醒程序 (9次浏览)
- vb.net GDI+入门——画笔、画刷和颜色 (3次浏览)
- VB.Net实现进程监视器的方法 (1次浏览)
- VB2005中开发新一代控制台应用程序(3) (0次浏览)
- vb.net使用ListView 控件显示系统驱动器 (0次浏览)
- vb.net入门——ListView 控件的使用 (0次浏览)
- vb.net GDI+入门——使用Graphics对象填充图形 (0次浏览)
- .Net中ListView控件多选时复选框自动选择问题 (0次浏览)
- vb.net GDI+入门——使用Graphics对象绘制线图 (0次浏览)
- vb.net GDI+入门——了解Font类 (0次浏览)



