我有一个已启用 = false 的组合框。在这种情况下,它会使其变为灰色。我想知道是否有一种方法可以在未启用时将复选框背景颜色保持为玉米丝?
情况是,当我选择项目时,我的表格会刷新数据。如果用户选择编辑记录,我启用表单以接受更改,并且由于它主要是文本框,我只需更改它们的只读属性。但是组合框看起来不同,所以我想看看我能做些什么来让它和表格的其他部分一样......
有任何想法吗?
我有一个已启用 = false 的组合框。在这种情况下,它会使其变为灰色。我想知道是否有一种方法可以在未启用时将复选框背景颜色保持为玉米丝?
情况是,当我选择项目时,我的表格会刷新数据。如果用户选择编辑记录,我启用表单以接受更改,并且由于它主要是文本框,我只需更改它们的只读属性。但是组合框看起来不同,所以我想看看我能做些什么来让它和表格的其他部分一样......
有任何想法吗?
如果表单美观很重要,您可以考虑使用 Jquery UI 或其他插件。您可以使用 CSS 控制整个外观。
正如 Will 所建议的那样,可以使用文本框隐藏组合框,但随后您将不得不为下拉菜单使用绝对宽度。
我会简单地用 TextBox 隐藏它并将其 Visible 属性设置为 false。然后,您的用户单击 Edit 按钮,隐藏 TextBox 并显示 ComboBox,并将其 Visible 属性设置为 true。
也许您希望通过将其值设置为 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() 事件处理程序相反的操作,即可将表单恢复为只读模式。