简单 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();
    }