单击空白区域时如何处理事件?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了单击空白区域时如何处理事件?相关的知识,希望对你有一定的参考价值。

我想在列表视图左键单击空白区域时捕获事件 - 即单击列表视图控件中的任何项目。

我在列表视图的事件列表中搜索但没有找到。我怎样才能做到这一点?请帮忙!

[编辑]如果我能抓住这个事件,我想做什么:取消选择列表视图中的所有项目。

答案

如果将处理程序附加到ListView上的MouseLeftButtonDown事件,则只会在单击ListViewItem外部的区域时触发。项目内的任何点击都将由项目本身处理,以驱动ListView的选择行为。

您可以通过在ListView上设置ItemContainerStyle来调整背景({x:Null}不可点击,其他任何东西)和ListViewItems的边距来更改可点击区域。还要确保您没有在ListView本身上使用空背景(白色是默认设置,透明也可以)。

另一答案

ListBoxItem控件处理ListBox上的点击。你应该:

  • 在ListBox上使用PreviewMouseDown事件
  • 通过myListBox.AddHandler方法在代码中添加事件处理程序

有关说明和代码示例,请参阅How to Attach to MouseDown Event on ListBox

另一答案

我发现如果我之前单击了listview中的一个项目(从而选择了它),那么接下来双击listview中的空白区域会导致先前选择的项目被操作的不良结果,就像它被双击一样在(而不是空的空间)。为了解决这个问题,我使用了以下代码(vb.net):

Private Sub ListView1_MouseLeftButtonDown(sender As Object, e As MouseButtonEventArgs) Handles ListView1.MouseLeftButtonDown

    ListView1.SelectedIndex = -1

End Sub

使用此代码双击空白空间取消选择任何先前选择的项目,并且当用户双击空白区域时,具有所需的效果。

以上是关于单击空白区域时如何处理事件?的主要内容,如果未能解决你的问题,请参考以下文章

Fragment 工具栏上方奇怪的空白区域。如何解决?

单击表格 qtableWidget 的空白区域

如何从RegEx分组中“排除”空白区域?

EXCEL下拉筛选统计了多余未填写空白区域怎么调整?

Selenium IDE如何模拟鼠标点击网站空白区域?

将片段附加到framelayout时如何删除空格