0

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

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

还有一个问题:如何为表格绘制黑色边框(这个 tree.EnableGridLines = TreeViewGridLines.Both; 就在网格内部)。提前致谢。马泰

4

2 回答 2

0

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

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

于 2012-04-10T12:06:57.940 回答
0

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

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

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

(哦,这就是 PyGTK 语法;在 Gtk# 中可能是treeview.VAdjustment.)

于 2012-04-10T10:33:44.770 回答