2015-12-09 1 views
1

У меня есть простое окно GTK #: оно содержит только кнопку.Простое окно: Почему моя динамически сгенерированная кнопка не отображается?

Если я нажму эту кнопку, я хочу создать другую кнопку, которая должна отображаться в том же окне.

Моя проблема: сгенерированная кнопка никогда не отображается в графическом интерфейсе, хотя она добавляется к моему объекту «Окно». Функция, которую я использую для создания кнопки, работает нормально, если я вызываю ее непосредственно в конструкторе, поэтому она должна быть в порядке.

Какой код отсутствует в моем простом приложении, чтобы показать сгенерированную кнопку?

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

ответ

1

Измените метод этого

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

Ваш addButton не имеет вызова для добавления().

+0

Мне не нужно называть «Добавить», потому что я добавить кнопку в «Fixed» контейнер, который уже добавлен к самому окну ... – Boardwish

+0

Ач. Сожалею. Забудь мой ответ, ты прав. – Sascha

Смежные вопросы