如何在TreeView中获取鼠标指针下的项目(树节点)?
在GTK / GTK# TreeView
,如何获取鼠标指针当前hover的项目/节点?
假设我们想要使用鼠标右键选择项目而不使用复选框。 以下ButtonPress事件处理程序就是这样 – 它切换我们用RMB点击的项目的选定属性。 然后我们使用CellDataFunc来突出显示所选项目。 tv是TreeView, store是底层的ListStore。
[GLib.ConnectBefore] void HandleTreeViewButtonPressEvent(object o, ButtonPressEventArgs args) { if (args.Event.Button != 3) return; TreePath path; int x = Convert.ToInt32(args.Event.X); int y = Convert.ToInt32(args.Event.Y); if (!tv.GetPathAtPos (x, y, out path)) return; TreeIter iter; if (!store.GetIter(out iter, path)) return; Item item = (Item) store.GetValue (iter, 0); item.Selected = !item.Selected; tv.QueueDraw(); }
如果我们使用排序的TreeView,我们必须使用TreeModelSort对象而不是ListStore对象来获取正确的项:
上述就是C#学习教程:如何在TreeView中获取鼠标指针下的项目(树节点)?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
if (!sorted.GetIter(out iter, path)) return; Item item = (Item) sorted.GetValue (iter, 0);
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/1000303.html