Форма окна обновления

#c# #winforms #button

#c# #winforms #кнопка

Вопрос:

У меня есть две формы WinForms:

admin.cs, который является Windows.Формы.Форма

addManager.cs, который является Windows.Формы.Пользовательский контроль

Пользовательский элемент управления addManager находится внутри формы admin.cs


В admin.cs у меня есть кнопка обновления, и вот ее код:

 if (admin.ActiveForm != null)  {  this.Dispose();  admin NewForm = new admin();  NewForm.Show();  }  

Теперь я решил избавиться от кнопки обновления на admin.cs и переместить ее код на другую кнопку в addManager.cs

 ***addManager.cs***  private void btnAdd_Click(object sender, EventArgs e) {  ...  if (admin.ActiveForm != null)  {  this.Dispose();  admin NewForm = new admin();  NewForm.Show();  } }  

В программе нет ошибок, но текущая форма не закрывается, вместо этого появляется новая форма, что делает ее двумя окнами одновременно. Левое окно-это старое окно, которое я хочу удалить при отображении новой формы (правое окно). фото для справки

Что я хочу сделать, так это автоматически обновить форму с помощью кнопки в другой форме (UserControl).

Любая помощь очень ценится.

Ответ №1:

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

 this.Hide(); admin newForm = new admin(); newForm.Closed  = (s, args) =gt; this.Close();  newForm.Show();  

Комментарии:

1. Я все еще получаю тот же результат. Он по-прежнему показывает текущую форму. Что я делаю, так это вставляю ваш ответ в событие нажатия кнопки в admin.cs и в addManager.cs . Что я делаю, так это выполняю щелчок, подобный этому admin newForm = new admin(); newForm.btnRefresh.PerformClick();