C# 如何在winform c中设置列表框的默认选定项?

C# 如何在winform c中设置列表框的默认选定项?,c#,winforms,listbox,C#,Winforms,Listbox,我试着这样设置: ListBox lb=新的ListBox; /*绑定数据*/ lb.SelectedItem=someObject lb真实地选择了someObject项。但它会首先选择第一项。这个动作导致了我不想要的SelectedIndexChanged事件 我只想在选择某个对象时调用SelectedIndexChanged。 如何解决此问题?在将selectedItem更改为某个对象之前,不要添加selectedIndexChanged事件 将事件从窗体编辑器或designer.cs中删

我试着这样设置:

ListBox lb=新的ListBox; /*绑定数据*/ lb.SelectedItem=someObject

lb真实地选择了someObject项。但它会首先选择第一项。这个动作导致了我不想要的SelectedIndexChanged事件

我只想在选择某个对象时调用SelectedIndexChanged。
如何解决此问题?

在将selectedItem更改为某个对象之前,不要添加selectedIndexChanged事件


将事件从窗体编辑器或designer.cs中删除,并使用自动生成的代码手动添加该事件?

在窗体/控件上使用一个标志,在不希望触发事件时禁用该事件

public class Form1 : Form
{
    private bool itemsLoading;

    public Form1()
    {
        InitializeComponent();
        LoadListItems();
    }

    private void LoadListItems()
    {
        itemsLoading = true;
        try
        {
            listBox1.DataSource = ...
            listBox1.SelectedItem = ...
        }
        finally
        {
            itemsLoading = false;
        }
    }

    private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
    {
        if (itemsLoading)
            return;

        // Handle the changed event here...
    }
}