0

如果我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;
}

在 OnLoad 内设置 Index 时选择 ComboBox 内的文本

如果我使用OnShown设置 SelectedIndex 的方法,它会按预期工作:

protected override void OnShown(EventArgs e)
{
    base.OnShown(e);
    comboBox.SelectedIndex = 2;
}

在 OnShown 中设置 Index 时,不会选择 Combobox 中的文本

为什么会发生这种情况,我该如何避免这种行为?尤其是在 Usercontrol 内部,没有可以使用的 OnShown 方法。因此,我的解决方法不适用于 custum UserControl。

4

3 回答 3

0

如果让您烦恼的是选择了文本,请尝试将焦点返回到您的表单。

但总的来说,人们通常不希望组合框选项实际上是可编辑的,这也会阻止您的情况发生。

于 2013-05-06T10:59:38.173 回答
0

如果您不想focus使用组合框,只需将焦点更改为其他控件。

TextBox1.Select();

于 2013-05-06T11:00:46.897 回答
0

您可以通过将 DropDownStyle 属性设置为:DropDownList 来将组合框更改为下拉列表。

于 2013-05-06T11:41:17.183 回答