Среда
- Windows XP x32 Visual Studio 2005 Standard Edition
- Honeywell Dolphin 9500 под управлением Windows Mobile 2003 (Pocket PC 2003) Со встроенным сканером штрих-кода и черно-белой камерой Использование их SDKрасположен здесь .
- .NET Compact Framework 1.0 SP3 и .NET Framework 1.1
- Использование VC #
Цель
У меня есть элемент управления ListView с CheckBoxes = true
и View = Details
в форме, но я не хочу, чтобы флажки «проверялись» пользователем.Я использую его для отображения статуса завершения записи.Однако я хочу использовать функцию обработчика событий, чтобы установить флажок с помощью кода (т. Е. При завершении записи: lvMeters_ItemCheck(null, null);
).
Проблема
Я отключил проверку самого флажка (Я думаю, сенсорный экран не очень точный на этом устройстве).Однако при выборе строки (у меня есть FullRowSelect = true
), элемент управления часто проверяет флажок, и обработчик событий, кажется, не вызывается.
Вещи, которые я пробовал
Iпопытался в основном отменить действие в обработчике события:
private void lvMeters_ItemCheck(object sender, ItemCheckEventArgs e)
{
if (sender is ListView)
{
if (e.CurrentValue == CheckState.Checked)
lvMeters.Items[e.Index].Checked = true;
else
lvMeters.Items[e.Index].Checked = false;
}
else if (e.CurrentValue == CheckState.Checked)
lvMeters.Items[e.Index].Checked = false;
else
lvMeters.Items[e.Index].Checked = true;
}
Проблема в том, что указанный выше обработчик не вызывается при выборе представления списка, и при этом обработчик события SelectedItemChanged не вызывает этот обработчик события, но он все еще проверяеткоробка на выбор.Он вызывается при установке флажка.
Нужна дополнительная информация?
Спросите, и я сделаю все возможное!
Я новичок
Поэтому, пожалуйста, не стесняйтесь сказать мне, что я делаю это совершенно неправильно и должен все делать по-другому.