在python中,我可以做builder.connect_signals(self)
。看起来这个方法似乎不存在于C#中,并且在查看the GtkBuilder documentation之后,看起来python是例外,而不是规则。我如何在C#中完成同样的事情?
答案 0 :(得分:1)
目前Gtk.Builder尚未在当前版本的Gtk#(2.12)中完全实现。 这thread解释了当前的情况。所以一旦Gtk#2.14发布,你就可以做到:
builder.Autoconnect (this);
在此期间,您可以使用Glade.XML,然后按照此处所述转换代码(和glade文件):http://lists.ximian.com/pipermail/gtk-sharp-list/2008-October/009157.html
答案 1 :(得分:0)
您可以使用方法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();
}