我有一個組合框,我有Enabled = false。如果是這樣,它會導致它變成灰色。我想知道是否有一種方法,我可以保持複選框背景顏色爲cornsilk而它沒有啓用?Combobox背景顏色雖然未啓用
情況是,我有一個表格,當選擇一個項目時,我將刷新數據。如果用戶選擇編輯記錄,我使表單接受更改,因爲它主要是文本框,我只是更改這些只讀屬性。但組合框看起來不同,所以我想看看我能做些什麼來使它保持與其他形式一樣...
任何想法?
我有一個組合框,我有Enabled = false。如果是這樣,它會導致它變成灰色。我想知道是否有一種方法,我可以保持複選框背景顏色爲cornsilk而它沒有啓用?Combobox背景顏色雖然未啓用
情況是,我有一個表格,當選擇一個項目時,我將刷新數據。如果用戶選擇編輯記錄,我使表單接受更改,因爲它主要是文本框,我只是更改這些只讀屬性。但組合框看起來不同,所以我想看看我能做些什麼來使它保持與其他形式一樣...
任何想法?
我只是簡單地用它上面的TextBox來隱藏它,並將它的Visible屬性設置爲false。然後,您的用戶單擊「編輯」按鈕,即可隱藏TextBox並將其Visible屬性設置爲true以顯示ComboBox。
也許您希望通過將其值設置爲SelectedItemChanged()事件處理程序的ComboBox.SelectedItem屬性值來更新您的TextBox.Text屬性。
讓我們假設如下:
ComboBox cb = new ComboBox();
// Position, size and other properties are set through design.
cb.SelectedIndex = 0; // Forces selection of first item for demo purposes.
TextBox tb = new TextBox();
tb.Size = cb.Size;
tb.Position = cb.Position;
tb.Text = cb.SelectedItem.ToString();
tb.Visible = true;
tb.Readonly = true;
cb.Visible = false;
然後,單擊編輯按鈕:
private void EditButton_Click(...) {
tb.Visible = false;
cb.Visible = true;
}
,讓您的TextBox.Text屬性值按照您的SelectedItem:
private void ComboBox_SelectedIndexChanged(...) {
tb.Text = cb.SelectedItem.ToString;
}
而且你只會做與你的EditButton_Click()事件處理程序相反的方式來恢復你的表單只讀模式。
如果美學的形式很重要,你可以考慮使用Jquery UI或其他插件。您可以使用CSS控制整個外觀。
按照Will的建議,隱藏帶有文本框的組合框是一種可能性,但是您必須使用絕對寬度作爲下拉菜單。