最近有用到TreeView和ListView 双击Item事件,

如果在TreeView和ListView中加入鼠标双击事件,点击TreeView和ListView中的空白的地方 也可以触发事件,明显不符合要求

,后来经过一番百度和验证

现修改如下:

TreeView双击事件中

private void OnTreeViewDoubleClick(object sender, MouseButtonEventArgs e)
{
if (sender is TreeViewItem)
{
//如果双击的是item 进行你需要的操作
}
}

ListView需要修改如下

<Style x:Key="ListViewItemStyle" TargetType="ListViewItem">
<Style.Setters>
<EventSetter Event="MouseDoubleClick" Handler="OnListViewItemDoubleClick" />

</Style.Setters>
</Style>

CS中加入双击事件

private void OnListViewItemDoubleClick(object sender, MouseButtonEventArgs e)
{
if (sender is ListViewItem)
{
//如果双击的是item 进行你需要的操作
}
}

最近有用到TreeView和ListView 双击Item事件,如果在TreeView和ListView中加入鼠标双击事件,点击TreeView和ListView中的空白的地方 也可以触发事件,明显不符合要求,后来经过一番百度和验证现修改如下:TreeView双击事件中 private void OnTreeViewDoubleClick(object sender, MouseButtonEventArgs e) { if (send... < TreeView . Item ContainerStyle> <Style TargetType="{x:Type TreeView Item }"> <EventSetter Event="MouseDoubleClick" Handler="On Item MouseDoubleClick" /> cs文件中 加入 private void On Item MouseDoubleClick(object sender, Mou.
项目中遇到一个需求,需要使用类似与button的click 事件 来完成一个点 动作,但是发现 Treeview Item 没有click 事件 ,查询文档后发现其实PreviewMouseUp 事件 可以实现这个需求,下面是代码: private void treeview EnergyAnalysis_PreviewMouseUp(object sender, MouseButtonEventArgs e)
this.NodeMouseDoubleClick += new System.Windows.Forms.TreeNodeMouseClickEventHandler(this. treeView 1_DoubleClick); private void treeView 1_DoubleClick(object sender, TreeNodeMouseClickEventArgs e) //获取节点数据 string text
ListView 中只有双 事件 ,同时里面的List Item 大多也是通过数据绑定获得的,很难在页面上直接操作。 虽然没有单机 事件 ,但是 ListView 中有一个SelectionChanged 事件 ,可以变相的当作单机 事件 。 可是这样依然不够,我们需要知道的我们点 的是哪一行,这个可以通过触发 事件 后通过 ListView .SelectionChanged属性来直接获得所点 的那一行中的控件,相当于是直接为每一行添加了一个点 事件 。 private void treeView 1_NodeMouseDoubleClick(object sender, TreeNodeMouseClickEventArgs e) if (e.Node.Name == "添加项目")
上图所示, TreeView 控件有CheckBox选框,鼠标在对CheckBox状态进行改变时,快速双 代码运行时会发现CheckBox的显示状态发生变化但实际上节点的选中状态与显示的状态不一致,也就是快速双 时CheckBox状态无法正常响应。在网上查资料,验证后发现该方法可行 class TreeView Ext: TreeView protected override void WndProc(ref Message m) 2. 在代码中,为 TreeView 控件的 Selected Item Changed 事件 添加一个 事件 处理程序。 ```csharp private void TreeView _Selected Item Changed(object sender, RoutedPropertyChangedEventArgs<object> e) // 获取选中的节点 var selected Item = e.NewValue as TreeView Item ; // 执行单 事件 的代码 // ... 3. 在 事件 处理程序中,可以获取选中的节点并执行单 事件 的代码。 注意:如果 TreeView 的节点是通过数据绑定生成的,则需要为 TreeView 控件设置 Item ContainerStyle 属性,并在其中添加一个触发器来处理节点单 事件