C#学习教程:我想在winforms列表框控件中检测项目双击。分享


我想在winforms列表框控件中检测项目双击。

好吧,我有一个列表框,里面有一些项目。
我想检测一个项目的双击。
目前我正在使用的方法存在一个问题,即如果用户双击空白点,则双击当前所选项目。

更新:
请注意,这个问题并不像最初看起来那么容易。
还要注意Timwi答案是不正确的,因为[if(ListBox1.SelectedIndex == -1)]部分没有被执行如果有一个项目被选中并且我点击了一个空的空间我不知道是谁投了他但他的答案不是正确。
我已经编写了这部分代码
如果有一个函数可以将鼠标坐标转换为列表框项,那么问题将得到解决

还有一个替代事件: MouseDoubleClick ,它提供了MouseEventArgs,因此您可以获得点击坐标。 然后,您可以调用GetItemBounds()来获取包含所选项目的矩形,并检查鼠标坐标是否在此矩形内:

  private void listBox1_MouseDoubleClick(object sender, MouseEventArgs e) { if(listBox1.SelectedIndex != -1) { var rect = listBox1.GetItemRectangle(listBox1.SelectedIndex); if(rect.Contains(e.Location)) { // process item data here } } } 

MouseDoubleClick版本信息:

这是我用于单个MouseClick的内容,可能会被改编。

首先,我将CheckListBox.CheckOnClick的属性设置为true:clb.CheckOnClick = true;

然后我在盒子checkstate改变后强制取消选择该项目:

上述就是C#学习教程:我想在winforms列表框控件中检测项目双击。分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—猴子技术宅(www.ssfiction.com)

 void clb_ItemCheck(object sender, ItemCheckEventArgs e) { if (clb.Items.Count > 0) { clb.SetSelected(0, false); } } 

本文来自网络收集,不代表猴子技术宅立场,如涉及侵权请点击右边联系管理员删除。

如若转载,请注明出处:https://www.ssfiction.com/ckf/959952.html

发表评论

邮箱地址不会被公开。 必填项已用*标注