2010-07-30 22 views
2

我說有4個asp.net單選按鈕組合,我想知道哪一個選中了。選擇Radiobutton組的案例有可能嗎?

什麼似乎很自然要做的是:

Select Case RadioButton.Checked = True 
     Case myRadioButton1 
     Case myRadioButton2 
     Case myRadioButton3 
     Case Else 

End Select 

我只是得到一個「參照非共享成員引用」的錯誤。這是一個恥辱,因爲它似乎是這樣一個乾淨的方式來做這個測試..是否有可能?

回答

9
Select Case True 

    Case RadioButton1.Checked 

    Case RadioButton2.Checked 

    Case RadioButton3.Checked 

    Case Else 

End Select 
+0

這麼簡單不敢相信我沒想到的是..好打! – Markive 2010-07-30 09:27:46

0

號類單選按鈕的Checked屬性是不共享的,所以除非你有一個情況下,你不能得到它的價值。爲此,您可以使用elseif的鏈條,但乾淨的解決方案IMO是使用一個單選按鈕列表代替,這將允許你動態地添加的項目,並在一個調用讀所選擇的項目,就像一個下拉列表。

+0

我需要在單選按鈕放置精細的控制。 Radiobuttonlists是可怕的。它們包裹單選按鈕在和應用類的跨度不輸入.. – Markive 2010-07-30 09:27:07

0

你可以使用一個RadioButtonList代替。 您只能在select/case中檢查原始數據類型。使用普通的RadioButtons,只有在CheckedCase被在那裏處理時,才能檢查CheckedChanged事件中的引用。例如:

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 
     AddHandler Me.RadioButton1.CheckedChanged, AddressOf CheckedChanged 
     AddHandler Me.RadioButton2.CheckedChanged, AddressOf CheckedChanged 
    End Sub 

    Private Sub CheckedChanged(ByVal sender As Object, ByVal e As System.EventArgs) 
     If sender Is Me.RadioButton1 Then 

     ElseIf sender Is Me.RadioButton2 Then 
      '........ 
     End If 
    End Sub 

但是這不是你的問題。使用RadiobuttonList而不是像我上面提到的那樣,或者在checked狀態下使用If/else,因爲它更自然。