我有一个组合框,我有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的建议,隐藏带有文本框的组合框是一种可能性,但是您必须使用绝对宽度作为下拉菜单。