2012-02-27 102 views
0

我的代碼如下:索引按鈕2010

Private Sub btn1_Click(sender As System.Object, e As System.EventArgs) Handles btn1.Click, btn2.Click, btn3.Click 
    Dim objBtn() As Object = {btn1, btn2, btn3} 
    Dim btn As Button 
    With objBtn 
     btn = CType(objBtn(x), Button) 
     If btn.FlatStyle = FlatStyle.Standard Then 
      btn.FlatStyle = FlatStyle.Flat 
      btn.FlatAppearance.BorderColor = Color.OrangeRed 
     Else 
      btn.FlatStyle = FlatStyle.Standard 
     End If 
    End With 
End Sub 

我必須爲程序自動控制x的值做什麼呢?也就是說,假設我點擊btn1,x的值必須變爲0;如果我點擊btn2,x的值必須變爲1,依此類推。謝謝。

+0

爲什麼你甚至把按鈕放在數組中?如果你已經這麼做了,爲什麼將它聲明爲Object而不是使用List(Of Button)'使迭代變得容易? – Oded 2012-02-27 13:17:24

+1

爲什麼不使用發件人對象,這將成爲問題的按鈕。 – 2012-02-27 13:17:38

+0

刪除了答案,因爲oded是正確的,它只是一個評論,添加了一個相當快活的刺傷x。 – 2012-02-27 13:21:18

回答

1

這會做你想做的。 :d

x = objBtn.IndexOf(sender)

0

它看起來像你想設置一個按鈕的狀態不同於集合中的其他人。

這裏的代碼可以幫助你做到這一點。

Private Sub btn1_Click(sender As System.Object, e As System.EventArgs) Handles _ 
btn1.Click, btn2.Click, btn3.Click 
    Dim buttons() As Button = {btn1, btn2, btn3} 

    For Each btn in buttons 
     If btn Is sender Then 
      btn.FlatStyle = FlatStyle.Standard 
     Else 
      btn.FlatStyle = FlatStyle.Flat 
      btn.FlatAppearance.BorderColor = Color.OrangeRed 
     End If 
    Next 
End Sub