我使用 ComboBox
DropDown
显示许多可以选择的项目。我还使用默认文本"选择项目"。除了我从列表中挑选一项项目的事实外,我可以选择文本并将其删除(使用backspace(,以便所选项目的区域为空白(请参阅图像(。
我想防止这种情况,或者如果不可能,则再次显示默认文本。后者到目前为止没有工作,所以我尝试了DropDownList
,但是整个列表的背景变为灰色。如果我在DrawMode
中选择OwnerDrawFixed
或OwnerDrawVariable
,则背景再次变白,但字体颜色也变为白色(而不是黑色(。
我发现我必须使用 DrawItem
来更改布局,但即使那行不通。我只是想要与DropDown
相同的样式。有人知道该怎么做还是在哪里找到已经回答的类似问题?
这样的事情怎么样?您也可以尝试将下拉式风格设置为下拉列表和FlatStyle平坦。这给您带来了略有不同的结果。
private void InitialiseCombo(ComboBox combo)
{
combo.Items.Clear();
combo.Items.AddRange(new object[] { 3391200121, 3391200122 });
combo.DropDownStyle = ComboBoxStyle.DropDown;
combo.Text = "Select Item";
combo.KeyPress += combo_KeyPress;
}
void combo_KeyPress(object sender, KeyPressEventArgs e)
{
e.Handled = true;
}
建议的解决方案没有解决问题,但我找到了最初问题的解决方法,这是combobox文本的手册删除,所以如果某人某人否则有同样的问题。使用
MyComboBox_TextChanged(object sender, EventArgs e)
我可以自己设置一个限制:如果文本为空白,则应显示默认文本。如果键入的文本等于Combobox中的项目之一,则应将SelectelleTem设置为等于键入的文本。
我还包括GotFocus
和Leave
EventHandlers
。