#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();