Member 13081540 Ответов: 1

Показать пользовательский элемент управления, нажав кнопку из другого пользовательского элемента управления.


Привет.

Я пытался загрузить пользовательский элемент управления, нажав кнопку из другого пользовательского элемента управления. В принципе, у меня есть 1 панель. На этой панели я могу нажать кнопку Заказать, которая приведет меня к пользовательскому элементу управления заказом. Теперь в этом пользовательском элементе управления я создал кнопку, которая должна очистить содержимое панели и заменить ее новым пользовательским элементом управления под названием checkout.

Что я уже пробовал:

Я пытался:
private void btnCheckout_Click(object sender, EventArgs e)
              {
              Menu panel = new Menu(); //called the Menu form to allow me to call the panel from that form.

              panel.pnlContent.Controls.Clear(); //I wanted to clear the content of a panel

              panel.pnlContent.Controls.Add(new Checkout()); //add a new user control to the panel
              }


Когда я нажимаю на кнопку, ничего не происходит. Он не очищает содержимое и не загружает пользовательский элемент управления checkout.

[no name]

- Откуда ты знаешь? Содержит ли коллекция элементов управления экземпляр Checkout? Вы обновили форму? Вы установили место для оформления заказа так, чтобы оно располагалось в видимой части панели?

Member 13081540

Он действительно содержит экземпляр checkout, и местоположение checkout задается в видимой части панели.

[no name]

Таким образом, ваш код работает именно так, как должен, а не "ничего". Вам нужно отладить свой код и выяснить, почему элемент управления Checkout не виден, если это действительно ваша реальная проблема.

1 Ответов

Рейтинг:
12

Richard Deeming

Если вы отлаживаете свой код, то должно быть совершенно очевидно, в чем заключается проблема:

Вы создаете новый экземпляр Menu, изменить его содержимое, а затем выбросить его.

Вам либо нужно отобразить новый Menu экземпляр или каким-то образом заполучить существующий экземпляр.

Мы не можем сказать вам, как это сделать, потому что мы не можем видеть код, который создает существующий экземпляр, и вы не сказали нам, что это такое. Menu класс.

Например, если Menu это Form, и вы хотите показать новый экземпляр, вам нужно позвонить panel.Show(); или panel.ShowDialog(); показать его.