我创建了一个TreeView,实际上它可以被称为TableStringView:有各种单元格可以输入文本。
我想通过按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,我该怎么做?
答案 0 :(得分:3)
您是否尝试过使用按键处理程序中的Glib.ConnectBefore属性?
/* ... */
cell.KeyPressEvent += onCellKeyPress;
[GLib.ConnectBefore]
void onCellKeyPress(object sender, EventArgs e)
{
/* ... */
}