Gtk treeview问题

时间:2012-04-09 23:48:01

标签: gtk gtk# gtktreeview

我有一个简单的树视图(像这一个 - http://www.mono-project.com/GtkSharp_TreeView_Tutorial),里面有200个项目并连接到滚动条。一切正常,但当我选择一个项目并使用箭头键时,所选项目可能超出可见区域。是否有可能专注于它或设置滚动条的调整,即

void HandleTreeSelectionChanged (object sender, EventArgs e)
{
    vadjustment.Value=SELECTED-ITEM.DISTANCE-FROM-TOP-OF-TREEVIEW;
}

还有一个问题:如何将黑色边框绘制到表格中(此树.EnableGridLines = TreeViewGridLines.Both;仅在网格内部绘制)。 提前致谢。 马捷

2 个答案:

答案 0 :(得分:0)

要将滚动条添加到树视图(或文本视图),只需将其添加到GtkScrolledWindow;它自动处理所有事情。我很确定它也会在大多数主题中创建一个边框。

更新:或者,您也可以通过将滚动条的调整设置为树视图的调整,将树视图的滚动行为“绑定”到任意滚动条:

scrollbar = gtk.VScrollbar(treeview.props.vadjustment)

(哦,那是PyGTK语法;在Gtk#中它可能是treeview.VAdjustment。)

答案 1 :(得分:0)

我同意Johannes' answer你似乎在做一些奇怪的事情,你真的应该只需要使用GtkScrolledWindow。它应该处理键盘导航(您在对Johannes的回答的评论中似乎描述的内容),这不是您需要手动执行的操作。

无论如何,尝试回答您的问题,您可以使用gtk_tree_view_scroll_to_cell()使树视图滚动到任何给定的单元格。