Nic*_*ick 7 c# checkbox listview multi-select winforms
我正在使用带有multirow和fullrow select的ListView控件.当我一次选择多行时,我的一些行会神奇地被检查.拖动鼠标时也会选择一个鼠标,然后单击另一个鼠标,就会发生这种情况.
请参阅此处描述问题的图片 
葡萄柚到底发生了什么?任何人?
不幸的是,ListView类中存在错误,这是其中之一.以下代码是一个适合我的修复程序.
编辑:对不起,这不能正常工作,虽然它确实可以防止您在问题中显示的错误.这可以防止选择多个项目,然后单击复选框进行检查.
void SetupListView()
{
listView.ItemCheck += new ItemCheckEventHandler(listView_ItemCheck);
listView.MouseDown += new MouseEventHandler(listView_MouseDown);
listView.MouseUp += new MouseEventHandler(listView_MouseUp);
listView.MouseLeave += new EventHandler(listView_MouseLeave);
}
bool mouseDown = false;
void listView_MouseLeave(object sender, EventArgs e)
{
mouseDown = false;
}
void listView_MouseUp(object sender, MouseEventArgs e)
{
mouseDown = false;
}
void listView_MouseDown(object sender, MouseEventArgs e)
{
mouseDown = true;
}
void listView_ItemCheck(object sender, ItemCheckEventArgs e)
{
if(mouseDown)
{
e.NewValue = e.CurrentValue;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10343 次 |
| 最近记录: |