使用ItemCheck事件的WinForm CheckListBox问题

时间:2009-09-18 17:48:16

标签: vb.net winforms

当复选框的选中状态发生变化时,我想知道新值是什么。 他就是我在做的事情:

Friend WithEvents clstTask As System.Windows.Forms.CheckedListBox

Private Sub clstTask_ItemCheck(ByVal sender As System.Object, ByVal e As System.Windows.Forms.ItemCheckEventArgs) Handles clstTask.ItemCheck
    Dim SelectedCheckState As CheckState = clstTask.GetItemCheckState(clstTask.SelectedIndex)
End Sub

但是,SelectedCheckState变量的值并不准确反映新状态。我认为它在点击之前显示当前状态,好像这是一个“Before_CheckChanged”事件处理程序。

复选框是3状态复选框,(已选中,未检查,未确定)。我是否必须编写丑陋的代码,假设如果CheckState返回状态为“X”,则CURRENT状态必须为Y?

2 个答案:

答案 0 :(得分:3)

ItemCheckEventArgs公开属性CurrentValue和NewValue。

答案 1 :(得分:1)

查看ItemCheckEventArgs.NewValue和ItemCheckEventArgs.CurrentValue。这就是为什么那个参数;)