在Python,我可以做 builder.connect_signals(self). 。看来这种方法不存在于C#,然后看完之后 GTKBuilder文档, ,看起来Python是例外,而不是规则。我将如何在C#中完成同一件事?

有帮助吗?

解决方案

目前,GTK.Builder在当前版本的GTK#(2.12)中尚未完全实现。这个 线 解释当前情况。因此,一旦GTK#2.14发布,您就可以做:

builder.Autoconnect (this);

同时,您可以使用 Glade.xml, ,然后如下所述转换您的代码(和GLADE文件): http://lists.ximian.com/pipermail/gtk-sharp-list/2008-october/009157.html

其他提示

您可以使用方法连接信号 Autoconnect, ,但是代表C#信号的方法必须处于形式:

static void customMethod(object sender, EventArgs args);

因此,您在这种方法中使用的每个类领域都必须声明为 static. 。它抢劫了您创建类的另一个实例。

还有另一种连接信号的方式:

Builder builder = new Builder();
builder.AddFromFile("custom.glade");
Button button = (Button)builder.GetObject("closeButton");
button.Clicked += delegate {
    Application.Quit();
}
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top