Winforms ListView ItemCheck при загрузке - PullRequest
2 голосов
/ 13 октября 2011

У меня есть winform, содержащий вкладки, содержащие пользовательский элемент управления, содержащий представление списка с флажками.

    private void lvwRoles_ItemCheck(object sender, System.Windows.Forms.ItemCheckEventArgs e)
    {
        if (!m_loading && m_locked)
        {
            e.NewValue = e.CurrentValue;
            return;
        }

Представлению списка назначаются его элементы (некоторые проверяются) в методе (в пользовательском элементе управления), которыйвызывается из родительской формы.Это делается при загрузке родительской формы.

Моя проблема заключается в том, что ItemCheck возникает при первом нажатии на соответствующую вкладку.Это приводит к тому, что переменная состояния m_loading уже давно имеет значение false.
Таким образом, ни один элемент никогда не проверяется, когда usercontrol имеет значение m_locked.

Есть ли способ решить эту проблему без изменения способа отображения списказаселен?

1 Ответ

3 голосов
/ 13 октября 2011

Представлению списка присваиваются его элементы (некоторые проверяются) в методе (в пользовательский элемент управления), который вызывается из родительской формы. Это сделано на загрузка родительской формы.

Даже если вы вызываете этот метод в родительской форме form_load, которая эффективно срабатывает при выборе этой вкладки. Установите m_loading в false после загрузки пользовательского элемента управления, что не произойдет, пока вы не выберете эту вкладку.

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