Как установить выбранный по умолчанию элемент списка в winform c #? - PullRequest
2 голосов
/ 12 февраля 2010

Я пытаюсь установить так:

ListBox lb = new ListBox();<br> /* Bind datas */<br> lb.SelectedItem = someObject;

lb верно выбрал элемент someObject. Но сначала он выберет 1-й предмет. И это движение вызывает событие SelectedIndexChanged, которое я не хотел.

Я просто хочу, чтобы SelectedIndexChanged вызывался при выборе someObject. Как я могу это исправить?

Ответы [ 2 ]

4 голосов
/ 12 февраля 2010

Используйте флаг на форме / элементе управления, чтобы отключить событие, если вы не хотите, чтобы оно сработало.

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...
    }
}
1 голос
/ 12 февраля 2010

не добавлять событие selectedIndexChanged, пока вы не измените selectedItem на someObject?

удалить событие из редактора форм или файла designer.cs и добавить его вручную, используя тот же код, который автоматически генерируется?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...