简单窗口:为什么我的动态生成按钮没有显示?

时间:2015-12-09 18:11:30

标签: c# gtk#

我有一个简单的GTK#窗口:它只包含一个按钮。

如果我单击此按钮,我想创建另一个按钮,该按钮应显示在同一窗口中。

我的问题是:生成的按钮永远不会显示在GUI上,尽管它被添加到我的“Window”对象中。 如果我直接在构造函数中调用它,我用来创建按钮的函数就可以了,所以它应该没问题。

我的简单应用程序中缺少哪些代码,以便显示生成的按钮?

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);
        }
    }

2 个答案:

答案 0 :(得分:1)

将您的方法更改为此

 public void addButton(int x, int y)
    {
        Button bt = new Button("rolund");
        _fix.Put(bt, x, y);
        bt.show();
    }

答案 1 :(得分:0)

您的addButton缺少对Add()的调用。