2011-08-27 23 views
1

我已經創建了一個TreeView這實際上是它可以被稱爲一個TableStringView:有可以在其中輸入文本的各種細胞。捕獲TAB在一個GTK#的TreeView控件

我想按TAB從一個細胞去到另一個,而不是按ENTER鍵並單擊另一個單元格,就好像它是一個電子表格。

然而,當我添加一鍵收聽到TreeView,它失敗。 TAB自然用於在小部件之間進行切換,因此它在TreeView有機會做任何事情之前被捕獲。因此,我希望類似的東西在Windows成員AcceptsTab:

tvTable.AcceptsTab = true; 

或者,也許將被用於每列的Gtk.CellRendererText:

var cell = new Gtk.CellRendererText(); 
cell.AcceptsTab = true; 
//... 
column.PackStart(cell, true); 
tvTable.AppendColumn(column); 

不幸的是,像這些沒有成員似乎存在。 爲了在TreeView中捕捉TAB,我能做些什麼?

回答

3

您是否嘗試過在按鍵處理使用Glib.ConnectBefore屬性?

/* ... */ 
cell.KeyPressEvent += onCellKeyPress; 

[GLib.ConnectBefore] 
void onCellKeyPress(object sender, EventArgs e) 
{ 
/* ... */ 
} 
+0

是的,它的工作完美。謝謝! – Baltasarq

+0

你能說你真正放在onCellKeyPress方法,使其像一個電子表格?謝謝! –