2009-05-11 8 views
4

新しいノードを作成するために、TreeViewの空の領域でダブルクリックイベントをキャッチしようとしています。残念ながら標準的な方法は機能しません。私は、T.V.がホストされているTreeViewとScrolledWindowの両方にButtonPressEventを添付しようとしました。私は自分の職務にコールバックを得ることはありません。Gtk.TreeViewでクリックを捕まえるには?

どうすればこの問題を解決できますか?

答えて

7

TreeView.ButtonPressEventを処理するには、ハンドラでGLib.ConnectBeforeAttributeを使用する必要があります。そうしないと、ウィジェットは内部的にイベントを処理し、ハンドラは呼び出されません。

例:

[GLib.ConnectBefore] 
void OnTreeViewButtonPressEvent(object sender, ButtonPressEventArgs e) 
{ 
    if (e.Type == Gdk.EventType.TwoButtonPress) 
    { 
     // double click 
    } 
}  
-4

私は、ツリービューには独自のウィンドウがあると思います。

(tvichildren、treeview-> Getsafehwnd()、tvi_root)ウィンドウハンドルを取得し、その後のSendMessage

上記送信メッセージは、あなたの理解のためのものです。

+0

あなたが話しているが、Gtkのように見えるしないツールキットわからない;) – viraptor

+0

ありません、それはGTK、そのWindowsプログラミングではありません。私はGTKにも同様のことがあると信じています。 ツールキットは、基本のラッパーです。私は信じている。 –

関連する問題