如果我在SelectedIndex
方法中设置组合框的OnLoad
,则组合框内的文本也会被选中。
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
comboBox.Items.Add("Zero");
comboBox.Items.Add("One");
comboBox.Items.Add("Two");
comboBox.SelectedIndex = 2;
}
如果我使用OnShown
方法设置SelectedIndex,它按预期工作:
protected override void OnShown(EventArgs e)
{
base.OnShown(e);
comboBox.SelectedIndex = 2;
}
为什么会发生这种情况,我该如何避免这种行为?特别是在Usercontrol中,没有可以使用的OnShown方法。因此,我的解决方法不适用于custum UserControl。
答案 0 :(得分:0)
尝试将焦点返回到您的表单,如果困扰您的是文本被选中。
但一般来说,人们通常不希望组合框选项实际上是可编辑的,这也会阻止您的情况发生。
答案 1 :(得分:0)
如果您不想focus
组合框只需将焦点更改为其他控件。
喜欢
TextBox1.Select();
答案 2 :(得分:0)
您可以通过将DropDownStyle属性设置为:DropDownList来将组合框更改为下拉列表。