如何通过"检查"行选择的复选框保持AC#Listview控制?

Eri*_*c H 6 c# .net-1.1 pocketpc compact-framework winforms

环境

  • Windows XP x32 Visual Studio 2005标准版
  • 霍尼韦尔Dolphin 9500运行Windows Mobile 2003(Pocket PC 2003)内置条码扫描器和B&W摄像头使用他们的SDK位于此处.
  • .NET Compact Framework 1.0 SP3和.NET Framework 1.1
  • 使用VC#

目标

我有一个ListView控件与CheckBoxes = trueView = Details窗体上,但我不希望复选框,可以由用户"可检查".我用它来记录完成的状态显示.但是,我想使用事件处理函数通过代码检查框(即记录完成时:) lvMeters_ItemCheck(null, null);.

问题

我已经禁用了检查盒子本身(我认为,触摸屏在这个设备上并不是真正精确).但是,当选择一行(我有FullRowSelect = true)时,控件通常会检查复选框,并且似乎没有调用事件处理程序.

我试过的事情

我试图基本上撤消事件处理程序中的操作:

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;
}
Run Code Online (Sandbox Code Playgroud)

问题是上面的处理程序没有在listview select上调用,SelectedItemChanged事件处理程序也没有调用这个事件处理程序,但是它仍在选中select复选框.检查框本身时会调用它.

需要其他信息?

提问,我会尽我所能!

我是新手

所以请随时告诉我,我这样做是完全错误的,应该以不同的方式完成整个事情.

Eri*_*c H 0

叹息...我在与设计器混淆时设法从控件中删除了事件处理程序。我在某个时候检查过,它仍然在那里,但那时我实际上确实遇到了逻辑/代码问题。

感谢您的回答:/