Повторно открыть закрытую форму, которая была показана с помощью ShowDialog()
Я делаю одну заявку, в которой есть одна основная Form
FormMain и один помощник Form
FormHelper.
Для понимания возьмем пример того, что в FormMain пользователь вводит заказы, и часто пользователь хочет открыть FormHelper и заполнить в нем некоторые значения.
При сохранении порядка сохраняются значения в FormMain, а также FormHelper.
Я сделал FormHelper полем в определении FormMain:
public partial class FormMain : Form
{
FormHelper BillsForm;
}
А в конструкторе:
public FormReceiptNew(string ReceiptNo)
{
InitializeComponent();
BillsForm = new BillsForm();//just once
}
Теперь предположим, что пользователь, заполняя FormMain, хочет ввести некоторые значения в FormHelper, он / она может нажать ALT+H, и форма будет отображаться с помощью ShowDialog()
и когда это будет сделано, пользователь закроет FormHelper, и один и тот же процесс будет выполняться столько раз, сколько потребуется FormHelper.
Причина, по которой я хочу, чтобы одна и та же форма открывалась несколько раз, заключается в том, что пользователь заполняет в ней определенные значения, и я хочу сохранить значения в следующий раз, когда FormHelper снова будет показан, и когда пользователь полностью завершит работу с FormMain, значения в FormMain будут сохранены вместе со значениями в FormHelper. Поэтому, когда пользователь нажимает ALT+H каждый раз, следующий код не будет работать:
BillsForm= new FormHelper();
BillsForm.ShowDialog();
как это создает новую форму, и все старые значения будут удалены.
2 ответа
В основной форме сохраните ссылку на вспомогательную форму. Вы создаете экземпляр вспомогательной формы один раз (например, onLoad) и продолжаете вызывать showDialog() для того же объекта. Все поля должны быть сохранены между вызовами.
Если вы хотите сохранить эти значения в главной форме после закрытия, вы можете отправить эти значения обратно в FormHelper при создании либо через конструктор, либо через сеттеры. Из вашего вопроса уже звучит, как будто вы собираетесь хранить те значения, которые вы хотите сохранить в основной форме, поэтому установка их при создании не должна быть проблемой.