ListView触发MouseUp事件时机让人崩溃了

烤火的鱼 2013-07-19 04:27:06
我希望在ListView的MouseUp事件中写点东西,按理说,直接在MouseUp事件里面写就可以了,但奇怪的是,如果鼠标在ListItem文字上按下鼠标,稍等,再松开,正常,先产生mousedown,再产生MouseUp事件,但如果在文字区域以外单击时,MouseDown的同时,立马触发了MouseUp事件,而我鼠标还按着呢.
试验:
1.在窗体上放一个ListView控件和Label控件,设置ListView控件的View为Detail,并添加一列,宽度适当宽一些
2.启动时,添加一些Item:
private void Form1_Load(object sender, EventArgs e)
{
for (int i = 0; i < 300; i++)
{
listView1.Items.Add("ListViewItem:" + i.ToString());
}
}
3.响应MouseUp事件:

private int m_Counter = 0;
private void listView1_MouseUp(object sender, MouseEventArgs e)
{

m_Counter++;
label1.Text = m_Counter.ToString();
}
可以清楚看见,当鼠标在每个Item文字上按下,稍等再松开时,松开的瞬间,计数器+1,而在文字以外时,按下去,计数器马上+1,松开时,根本不再触发,悲催吧?
谁能帮忙解决一下?
下面是效果图,红色椭圆表示列宽的位置,在两个蓝色椭圆位置按下鼠标,稍等再松开,触发MouseUp事件时机不一样

...全文
235 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Jack.Wei 2014-02-25
  • 打赏
  • 举报
回复
找到了! 我也是遇到这个问题 百度进来的 原因就是因为你把ListView的MultiSelect属性改为False了 我也改了 发现当MouseDown的时候 紧接着就会进入MouseUp 郁闷 我还在MouseUp做了bool开关呢 有没有大神给个解决办法
烤火的鱼 2013-07-28
  • 打赏
  • 举报
回复
事情很诡异,测试不行,实际项目上线又没问题
hudsonhuang 2013-07-19
  • 打赏
  • 举报
回复
检查一下sender吧
智商余额不足 2013-07-19
  • 打赏
  • 举报
回复
我试了没出现你的问题 0.0
海洋夜之星 2013-07-19
  • 打赏
  • 举报
回复
不是可以再判断一次当前鼠标的状态啊,你可以在执行你的代码前在加个鼠标状态的判断,确定鼠标属于弹起的状态才执行代码
烤火的鱼 2013-07-19
  • 打赏
  • 举报
回复

直接发了半天图发布上去,回复的方式就可以发图了

110,532

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧