2012-10-06 28 views
2

因此,我有一個窗體應用程序,有一個文本框告訴你要選擇什麼樣的雜貨品。有3個單選按鈕可供您選擇,還有一個提交該答案的按鈕。我想要的是能夠使用選項卡瀏覽這些單選按鈕。我試過Tab鍵順序的東西,但它不起作用。有什麼建議麼?帶單選按鈕的C#選項卡順序

+1

爲什麼不使用下拉列表呢?聽起來更合適。 – SimpleVar

+0

您可以將Tab鍵鎖定在KeyPress事件中並自行處理。或者從單選按鈕類繼承,並將其擴展爲處理選項卡按鍵。 –

+0

這是單選按鈕的默認行爲。如果你想改變它,你可能需要繼承它並重新實現鍵盤行爲。或者 - 也許,你可能會創建一個你自己的單選按鈕。 –

回答

1

Windws窗體讓你只能進入組。解決這個問題的一種方法是通過在每個按鈕周圍放置組框來獲取所有Button在單獨組中。

雖然這可以讓你通過他們標籤,他們現在是脫節,不會自動取消選擇。爲此,請註冊選擇時觸發的事件,並以編程方式取消選擇其他事件。

namespace WindowsFormsApplication1 
{ 
    public partial class Form1 : Form 
    { 

     private List<RadioButton> allMyButtons; 

     public Form1() 
     { 
      InitializeComponent(); 
      allMyButtons = new List<RadioButton> 
      { 
       radioButton1, 
       radioButton2 
      }; 
     } 

     private void radioButton_CheckedChanged(object sender, EventArgs e) 
     { 
      RadioButton sendingRadio = (sender as RadioButton); 
      if(sendingRadio == null) return; 
      if(sendingRadio.Checked == true){ 
       foreach(var rb in (from b in allMyButtons where b != sendingRadio select b)) 
       { 
        rb.Checked = false; 
       } 
      } 
     } 

    } 
} 

我測試了這種方法,它似乎做了這項工作。

形式不是現代的做事方式。考慮轉移到WPF的新項目。