下拉(列表)组合控制字段选项C#



我使用 ComboBox DropDown显示许多可以选择的项目。我还使用默认文本"选择项目"。除了我从列表中挑选一项项目的事实外,我可以选择文本并将其删除(使用backspace(,以便所选项目的区域为空白(请参阅图像(。

我想防止这种情况,或者如果不可能,则再次显示默认文本。后者到目前为止没有工作,所以我尝试了DropDownList,但是整个列表的背景变为灰色。如果我在DrawMode中选择OwnerDrawFixedOwnerDrawVariable,则背景再次变白,但字体颜色也变为白色(而不是黑色(。

我发现我必须使用 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设置为等于键入的文本。

我还包括GotFocusLeave EventHandlers

最新更新