2008-10-02 54 views
21

我正在使用Designer和WinForms在C#,Visual Studio 2008中編寫GUI。我有一個ComboBox控件,我希望它只允許從提供的選項中進行選擇,而不接受用戶輸入的字符串。它似乎沒有ReadOnly屬性,禁用它會阻礙控件的可讀性(以及不允許用戶選擇)。WinForms中的只讀組合框

+0

DropDownStyle屬性是我正在尋找。我不能相信我忽略了這一點。 – 2008-10-02 15:31:01

+3

可能的重複[如何在.net中使ComboBox不可編輯?](http://stackoverflow.com/questions/85702/how-can-i-make-a-combobox-non-editable-in-淨) – nawfal 2013-12-29 02:15:20

回答

46

設置DropDownStyle爲 「DropDownList的」

1

嘗試使用下拉框

6

的ComboBox.DropDownStyle屬性設置爲ComboBoxStyle.DropDownList。

2

使用與以下代碼類似的代碼來設置允許的選項,並僅使用這些選項。

comboBox1.DropDownStyle = ComboBoxStyle.DropDownList; 
comboBox1.Items.AddRange(new object[] { 
    "One", 
    "Two", 
    "Three", 
    "Four"}); 
3

另一個簡單的方法去它。

private void combobox1_KeyPress(object sender, KeyPressEventArgs e) 
{ 
    e.Handled = true; 
} 
0

我的要求:一旦用戶通過組合框中給出輸入都無法改變的值之前提交。他們只能讀取該值。

根據我的要求,我做了以下事情。

1)通過組合框輸入來自用戶的輸入。
2)將組合框的值複製到文本框(它是隻讀和不可見的)。
3)虛假組合框的可見性。
4)真正的只讀文本框的可見性。

用事件做到這一點。