2013-10-11 83 views

回答

1

這就是所謂的LINQ。

Givin對象集合(因此是GroupBox1.Controls,集合RadioButton對象),您可以查詢集合。 因此,您有一個查詢從RadioButton集合中檢索第一個RadioButton(如果沒有使用FirstOrDefault,則返回null),滿足檢查條件(Function(r) r.Checked = True它是lambda表達式)。由於Controls是對象的集合,因此您需要將其強制轉換爲RadioButton,您可以訪問IsChecked屬性。 希望解釋有幫助;反正你必須檢查LINQ reference for VB

+0

什麼FirstOrDefault呢? –

+1

'FirstOrDefault'(作爲'First')檢索集合的第一個項目,唯一的區別是FirstOrDefault檢索默認值(通常爲空),如果沒有「第一個」項目。在這種情況下,「First」會拋出異常。 –

1

那麼上面的代碼行做的是慢慢放下縮小到選定的複選框。它從組開始,然後抓取該組框中的所有控件,然後選擇僅爲單選按鈕的控件,然後僅選擇將選中字段設置爲true的單選按鈕,然後選擇第一個單選按鈕符合所有這些標準,其中應該只有一個。

0

它可能更有效地處理所有的CheckedChanged事件有一個處理程序,而不是通過所有的單選按鈕迭代:

private void radioButton_CheckedChanged(object sender, EventArgs e) 
    { 
     RadioButton rb = (RadioButton)sender; 
     if (rb.Checked) 
      MessageBox.Show(rb.Name); 
    } 
相關問題