Combobox 未启用时的组合框背景色

Combobox 未启用时的组合框背景色,combobox,background-color,Combobox,Background Color,我有一个已启用的组合框=false。在这种情况下,它会使其变为灰色。我想知道是否有一种方法可以在复选框未启用时将其背景颜色保持为cornsilk 情况是,我有一个表单,当选择一个项目时,我将用数据刷新该表单。如果用户选择编辑记录,我会使表单接受更改,因为它主要是文本框,所以我只会更改这些文本框的只读属性。但是组合框看起来不一样,所以我想看看我能做些什么使它保持和表单的其他部分一样 有什么想法吗?我会用一个文本框将它隐藏起来,然后将其Visible属性设置为false。然后,用户单击编辑按钮,隐藏

我有一个已启用的组合框=false。在这种情况下,它会使其变为灰色。我想知道是否有一种方法可以在复选框未启用时将其背景颜色保持为cornsilk

情况是,我有一个表单,当选择一个项目时,我将用数据刷新该表单。如果用户选择编辑记录,我会使表单接受更改,因为它主要是文本框,所以我只会更改这些文本框的只读属性。但是组合框看起来不一样,所以我想看看我能做些什么使它保持和表单的其他部分一样


有什么想法吗?

我会用一个文本框将它隐藏起来,然后将其Visible属性设置为false。然后,用户单击编辑按钮,隐藏文本框并显示组合框,其Visible属性设置为true

您可能希望通过将TextBox.Text属性的值设置为SelectedItemChanged事件处理程序上的ComboBox.SelectedItem属性值来更新该属性

让我们假设以下情况:

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;
}
并使您的文本框。文本属性值跟随您的SelectedItem:

private void ComboBox_SelectedIndexChanged(...) {
    tb.Text = cb.SelectedItem.ToString;
}

你只会做你的Edter ButoNo.Cyt事件处理程序的反向操作,将你的表单恢复为只读模式。

< P>你可以考虑使用jQuery UI或其他插件,如果窗体的美观是重要的。您可以使用CSS控制整个外观

正如Will所建议的,用textbox隐藏combobox是一种可能性,但是您必须使用绝对宽度作为下拉列表