Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Разработка Windows Forms > изменение состояния CheckBox в ListView


Автор: TechnoMag 26.7.2012, 12:46
Здесь отслеживается изменение состояния checkBox в ListView пользователем. Например, галочка устанавливается.

Код

private void lvTimeLine_ItemCheck(object sender, ItemCheckEventArgs e)
        {
            if (editMode == true)
            {
                if (e.NewValue == CheckState.Checked && lvTimeLine.Items[e.Index].SubItems[8].Text.Length == 0)
                    ReserveTime(lvTimeLine.Items[e.Index]);
                else
                    UnReserveTime(lvTimeLine.Items[e.Index]);
            }
        }


Здесь в зависимости от выбора пользователем производятся действия

Код

private void ReserveTime(ListViewItem Item)
        {
            if (MessageBox.Show("Зарезервировать время " + Item.Text + " ?",
                   "Резервирование времени",
                   MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
            {
                 // резервирование
                 Item.SubItems[8].Text = OwnerName;
                 Item.BackColor = Color.FromArgb(255, 230, 113);
            }
            else
                // отказ от резервирования - снять галочку
                Item.Checked = false; // в этой строке галочка должна сниматься, но этого не происходит
        }

Как программно изменить состояние checkBox на fasle?

Автор: TechnoMag 26.7.2012, 17:12
вопрос решен изменением обработчика на ItemChecked

Код

 private void lvTimeLine_ItemChecked(object sender, ItemCheckedEventArgs e)
        {
            if (editMode == true)
            {
                if (e.Item.Checked == true && lvTimeLine.Items[e.Item.Index].SubItems[8].Text.Length == 0)
                    ReserveTime(lvTimeLine.Items[e.Item.Index]);
                else
                    UnReserveTime(lvTimeLine.Items[e.Item.Index]);
            }
        }

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)