gtk# TreeView小部件中的capture选项卡

本文关键字:capture 选项 TreeView 小部 gtk# | 更新日期: 2023-09-27 18:06:53

我已经创建了一个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,我能做些什么?

gtk# TreeView小部件中的capture选项卡

您是否尝试过使用Glib。ConnectBefore属性在按键处理程序?

/* ... */
cell.KeyPressEvent += onCellKeyPress;
[GLib.ConnectBefore]
void onCellKeyPress(object sender, EventArgs e)
{
/* ... */
}