2016-02-25 84 views
0

接收編程入門講座VB工作室2013年 我決定嘗試一個列表框爲自己在側,並且無法對其進行編碼,這裏是我的代碼:當勾選複選框時,項目被添加到列表中,當第二個框被選中時,第一個項目和第二個項目都被添加到列表中?

Toppingsselected =這是名稱列表框中

辣=的複選框

火腿=名稱爲第二複選框

Private Sub Small_CheckedChanged(sender As Object, e As EventArgs) Handles Pepperoni.CheckedChanged, Ham.CheckedChanged 

     If Pepperoni.Checked = True Then 
      toppingsselected.Items.Add("Pepperoni") 
     Else 
      toppingsselected.Items.Remove("Pepperoni") 
     End If 
     If Ham.Checked = True Then 
      toppingsselected.Items.Add("Ham") 
     Else 
      toppingsselected.Items.Remove("Ham") 
     End If 
End Sub 

基本上,當檢查和unchec名k「意大利辣香腸」,它添加和刪除「意大利辣香腸」文本到列表框和從列表框中刪除,但是當我檢查「火腿」時,它將意大利辣味香腸和火腿添加到列表框中。如果

道歉,我不是行話,只是一個初學者到這裏,如果有人可以告訴我,我要去哪裏錯了,我會很感激

+1

對於這兩個處理程序,您都有相同的代碼。將它們分成不同的方法。或者檢查發件人對象以查看哪個複選框控件導致該事件,並僅對該事件起作用。 – LarsTech

+0

每當您選中或取消選中每個複選框時,您的子將執行。當你檢查火腿時,它會運行代碼。在第一個如果它控制第一個複選框的狀態,並且它被選中,所以它將百聞不如注的文本推入列表框。然後繼續查看是否選中了第二個複選框,並且這也是真實的,因此也將火腿文本添加到列表框中。 –

+0

您也可以在第一個IF語句之前清除列表框。但是,如果其他代碼操縱此列表框這樣做將無法工作。 –

回答

0

你們兩個控件給出相同的事件,它觸發對於兩個控件檢查事件,只需使用下面的代碼,我希望它的作品。

Private Sub Small_CheckedChanged(sender As Object, e As EventArgs) Handles Pepperoni.CheckedChanged, Ham.CheckedChanged 
If sender.Name = "Pepperoni" Then 
    If Pepperoni.Checked = True Then 
     toppingsselected.Items.Add("Pepperoni") 
    Else 
     toppingsselected.Items.Remove("Pepperoni") 
    End If 
End If 
If sender.Name = "Ham" Then 
    If Ham.Checked = True Then 
     toppingsselected.Items.Add("Ham") 
    Else 
     toppingsselected.Items.Remove("Ham") 
    End If 
End If 
End Sub 
相關問題