2016-11-30 35 views

回答

0

Checkbox1_CheckedChange方法是你所需要的。

If Checkbox1.Checked = True Then 
    Checkbox2.Enabled = False 
    Checkbox3.Enabled = False 
Else 
    Checkbox2.Enabled = True 
    Checkbox3.Enabled = True 
End If 
+0

我想在選定的複選框的循環插入框中執行所有其他操作應禁用 –

+0

@UmairNazir你是什麼意思所有其他?所有其他什麼? – David

+0

假設我有3個複選框,其中有一些數據在列表視圖中。當我選擇1複選框時,其他應該被禁用....當我不選中它時。它應該被刪除,其他現在對我來說 –

1

我會加強@ David's答案:

你必須爲你的複選框,例如註冊CheckedChanged事件在Form's Load事件:

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load 
    For Each checkbox In Controls.OfType(Of CheckBox) 
     AddHandler checkbox.CheckedChanged, AddressOf Checkbox_CheckedChanged 
    Next 
End Sub 

其中處理該事件當用戶手動clickes複選框的Checkbox_CheckedChanged

Private Sub Checkbox_CheckedChanged(sender As Object, e As EventArgs) 
    'Checkbox the user manually clicked 
    Dim changedCheckbox = DirectCast(sender, CheckBox) 

    If changedCheckbox.Checked Then 
     For Each otherCheckbox In Controls.OfType(Of CheckBox) 
      'We don´t want to change the state of the checkbox the user clicked on 
      If changedCheckbox IsNot otherCheckbox Then 
       otherCheckbox.Checked = False 
      End If 
     Next 
    Else 
     'Your part of deleting in listview 
    End If 
End Sub 
+1

我太遲了寫我的帖子ahahah – Tyler

+0

我有點困惑,他的意思是說實話,我仍然不完全確定,但+1 – David

0

也許是更好的函數:

Public Function DisableCheckBox(ByVal OriginalCheckBox As CheckBox) 
    Try 
     Dim Parent As Control = OriginalCheckBox.Parent 

     For Each Chk As CheckBox In Parent.Controls.OfType(Of CheckBox)() 
      If Not Chk.Name = OriginalCheckBox.Name Then 
       Chk.Enabled = Not Chk.Enabled 
      End If 
     Next 

     Return True 
    Catch ex As Exception 
     Return False 
    End Try 
End Function 

然後你可以簡單地打電話給:

​​
相關問題