C# 如何在Gtk.TreeView中捕获点击?
我正在尝试捕获树视图空白区域中的双击事件,以创建新节点。不幸的是,标准方法不起作用。我已经尝试将ButtonPressEvent连接到TreeView和T.V.所在的滚动窗口。我没有收到任何对我的函数的回调C# 如何在Gtk.TreeView中捕获点击?,c#,gtk,gtk#,gtktreeview,C#,Gtk,Gtk#,Gtktreeview,我正在尝试捕获树视图空白区域中的双击事件,以创建新节点。不幸的是,标准方法不起作用。我已经尝试将ButtonPressEvent连接到TreeView和T.V.所在的滚动窗口。我没有收到任何对我的函数的回调 我该如何解决这个问题呢?我认为Treeview有自己的窗口 获取窗口句柄,然后发送消息(treeview->Getsafehwnd(),tvi_root,tvichildren) 上述发送消息仅供您理解。您需要在处理程序上使用GLib.connectbefore属性来处理TreeView.B
我该如何解决这个问题呢?我认为Treeview有自己的窗口 获取窗口句柄,然后发送消息(treeview->Getsafehwnd(),tvi_root,tvichildren)
上述发送消息仅供您理解。您需要在处理程序上使用GLib.connectbefore属性来处理TreeView.ButtonPressEvent,否则小部件将在内部处理事件,并且不会调用您的处理程序 例如:
[GLib.ConnectBefore]
void OnTreeViewButtonPressEvent(object sender, ButtonPressEventArgs e)
{
if (e.Type == Gdk.EventType.TwoButtonPress)
{
// double click
}
}
不确定您在谈论哪个工具包,但它似乎不是Gtk;)不,这不是GTK,它是Windows编程。我相信GTK也会有类似的东西。工具包是围绕基础知识的包装,。我相信。
self.treeview.connect("button-press-event",self.cell_clicked)
def cell_clicked(self, widget, event):
if event.button == 1 and event.type == gtk.gdk.BUTTON_PRESS:
print "Double clicked on cell"