Mono 如何确定我刚刚在gtk中单击的选项卡的页码?

Mono 如何确定我刚刚在gtk中单击的选项卡的页码?,mono,gtk,gtk#,Mono,Gtk,Gtk#,我有一个带有多个标签的GTK笔记本。每个选项卡标签都是一个复合容器,其中包含一个我想用来关闭选项卡的按钮。该按钮有一个“单击”信号的处理程序 当调用信号时,我得到按钮小部件和“EventArgs”作为参数 我需要根据button小部件确定页码,但是myNotebook.PageNum(buttonWidget)总是返回-1。我甚至尝试过buttonWidget.Parent,它是包含小部件的HBox 关于我能做什么或我做错了什么有什么想法吗?一个简单的解决方法是在构建按钮时将页码传递给按钮的单击

我有一个带有多个标签的GTK笔记本。每个选项卡标签都是一个复合容器,其中包含一个我想用来关闭选项卡的按钮。该按钮有一个“单击”信号的处理程序

当调用信号时,我得到按钮小部件和“EventArgs”作为参数

我需要根据button小部件确定页码,但是myNotebook.PageNum(buttonWidget)总是返回-1。我甚至尝试过buttonWidget.Parent,它是包含小部件的HBox


关于我能做什么或我做错了什么有什么想法吗?

一个简单的解决方法是在构建按钮时将页码传递给按钮的单击事件

for (int page = 0; page < n; page++){ 
    int the_page = page;
    NotebookPage p = new NotebookPage ();
    ...
    Button b = new Button ("Close page {0}", the_page);
    b.Clicked += delegate { 
        Console.WriteLine ("Page={0}", the_page); 
    };
}
for(int page=0;page
“theu页面”很重要,因为它是一个新的变量,将由代表捕获。

Awesome——这种方法会奏效!谢谢顺便说一句,我关注你的博客已经有一段时间了!谢谢