我在WinForm中使用了组合框,但当我选择组合框中的任何项时,选定项的背景颜色会变成蓝色。 我想删除这个蓝色背景颜色(特别是在窗体加载时),但仍应该选中该项。 有人可以帮忙解决吗?
DropdownStyle
属性设置为DropdownListthis.BeginInvoke(new Action(() => { comboBox1.Select(0, 0); }));
combobox1.SelectionLength = 0;
comboBox.TabIndex
SendKeys.Send("{ESC}");
,因为它不是一个可靠的解决方案什么都没有帮助。可能是因为我的组合框项中没有文本,只有图片。 唯一稳定和有效的解决方案是将焦点移到另一个标签控件上:
label.Focus();
看起来唯一的方法是通过子类化组合框控件来实现。
以下是一个这样做的示例:
http://social.msdn.microsoft.com/Forums/en-US/winforms/thread/e234c4a7-0cf7-4284-a072-8152f7593002/
可能还有更多网络资源可以指导您。
ComboBox1.Select(0,0)
,这将删除选择部分,然后禁用计时器。识别其他可以再次Enable
计时器的入口点。private void comboBox1_SelectedValueChanged(object sender, EventArgs e)
{
//Get the item selected in the combobox
ComboBox cbx = (ComboBox)sender;
int idx = cbx.SelectedIndex;
string s1 = cbx.SelectedItem.ToString();
// Enable the time so that the Highlight can be removed
timer1.Enabled = true;
}
private void timer1_Tick(object sender, EventArgs e)
{
// Remove the Highlight
comboBox1.Select(0, 0);
// Disable timer
timer1.Enabled = false;
}
comboBox1.SelectionLength=0
可行吗? - V4Vendetta我并不是一个熟练的VB用户,只是在Excel中偶尔使用它,但当我在ComboBox中进行选择时也遇到了这个问题。最后我找到了一种方法来消除蓝色文本的高亮。
我有一个UserForm上的ComboBox。通过选择ComboBox并查看属性,将'HideSelection'更改为True对我有用。你也可以编写代码来实现它: ComboBox1.HideSelection = True
HideSelection
属性。它存在于TextBoxBase和继承自它的控件中,但ComboBox没有。这很遗憾,因为我真的很想要一个!(我正在使用带有.NET 4.5的Visual Studio 2013) - JonP对于您来说,有一个简单的解决方案
private void myComboBox_Paint(object sender, PaintEventArgs e)
{
myComboBoxComboBox.SelectionLength = 0;
}
希望能有所帮助 :)
简单的方法就是禁用下拉框,然后再启用它。
combobox.Enabled = false;
combobox.Enabled = true;
即使您在其中选择一个项目,该项目仍将被选中,但高亮显示将消失
我遇到了同样的问题,在找不到有效解决方案后,我也像@Vadim K.一样想到了同样的方法。
这里是一个简短的示例。
第一步是在UI_Load事件中改变焦点。
Private Sub UI_Load(sender As System.Object, e As System.EventArgs) Handles Me.Load
Me.lblTitle.Focus()
End Sub
Private Sub comboExportDates_SelectedIndexChanged(sender As Object, e As EventArgs) Handles comboExportDates.SelectedIndexChanged
Me.lblTitle.Focus()
End Sub
对我来说运行良好