简单 window: 为什么我动态生成的按钮没有显示?
Simple window: Why is my dynamically generated button not shown?
我有一个简单的 GTK#window: 它只包含一个按钮。
如果我点击这个按钮,我想创建另一个按钮,它应该显示在同一个 window。
我的问题是:尽管生成的按钮已添加到我的 "Window" 对象中,但它从未显示在 GUI 上。
如果我直接在构造函数中调用它,我用来创建按钮的函数就可以正常工作,所以应该可以。
为了显示生成的按钮,我的简单应用程序中缺少什么代码?
class TestWindow : Window
{
private Fixed _fix = new Fixed();
public TestWindow() : base("Test window")
{
SetDefaultSize(250, 200);
SetPosition(WindowPosition.Center);
DeleteEvent += delegate { Application.Quit(); };
Button bt = new Button("Create button");
bt.Clicked += delegate (object o, EventArgs args)
{
addButton(80,80); //does not work
};
_fix.Put(bt, 20, 30);
Add(_fix);
ShowAll();
}
public void addButton(int x, int y)
{
Button bt = new Button("DYNAMIC");
_fix.Put(bt, x, y);
}
}
您的 addButton 缺少对 Add() 的调用。
将你的方法改成这个
public void addButton(int x, int y)
{
Button bt = new Button("rolund");
_fix.Put(bt, x, y);
bt.show();
}
我有一个简单的 GTK#window: 它只包含一个按钮。
如果我点击这个按钮,我想创建另一个按钮,它应该显示在同一个 window。
我的问题是:尽管生成的按钮已添加到我的 "Window" 对象中,但它从未显示在 GUI 上。 如果我直接在构造函数中调用它,我用来创建按钮的函数就可以正常工作,所以应该可以。
为了显示生成的按钮,我的简单应用程序中缺少什么代码?
class TestWindow : Window
{
private Fixed _fix = new Fixed();
public TestWindow() : base("Test window")
{
SetDefaultSize(250, 200);
SetPosition(WindowPosition.Center);
DeleteEvent += delegate { Application.Quit(); };
Button bt = new Button("Create button");
bt.Clicked += delegate (object o, EventArgs args)
{
addButton(80,80); //does not work
};
_fix.Put(bt, 20, 30);
Add(_fix);
ShowAll();
}
public void addButton(int x, int y)
{
Button bt = new Button("DYNAMIC");
_fix.Put(bt, x, y);
}
}
您的 addButton 缺少对 Add() 的调用。
将你的方法改成这个
public void addButton(int x, int y)
{
Button bt = new Button("rolund");
_fix.Put(bt, x, y);
bt.show();
}