我正在尝试在TreeView的空白区域中捕获双击事件以创建新节点。不幸的是,标准方法不起作用。我已经尝试将ButtonPressEvent附加到TreeView和托管T.V.的ScrolledWindow。我的功能没有任何回调。
我该如何解决这个问题?
答案 0 :(得分:8)
您需要在处理程序上使用GLib.ConnectBeforeAttribute来处理TreeView.ButtonPressEvent,否则窗口小部件将在内部处理事件,并且不会调用您的处理程序。
示例:
[GLib.ConnectBefore]
void OnTreeViewButtonPressEvent(object sender, ButtonPressEventArgs e)
{
if (e.Type == Gdk.EventType.TwoButtonPress)
{
// double click
}
}
答案 1 :(得分:2)
http://old.nabble.com/CellRenderer-editable-on-double-click-td24975510.html
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"
答案 2 :(得分:-4)
我认为Treeview有一个自己的窗口。
获取窗口句柄,然后获取SendMessage(treeview-> Getsafehwnd(),tvi_root,tvichildren)
上述发送消息仅供您理解。