Я помещаю кнопку в родительское окно, чтобы перейти в дочернее окно.для закрытия дочернего окна я использую this.close () при нажатии кнопки, но я хочу закрыть как родительское, так и дочернее окно нажатием кнопки дочернего окна.
Попробуйте это
If Child.ShowDialog = DialogResult.OK Then Parent.close End If
Кнопка закрытия дочерней формы
Me.diaglogresult=DialogResult.OK
Передайте родительскую форму в дочернюю форму и вызовите ее метод close в обработчике закрытых событий.
private void btnOpenForm_Click(object sender, EventArgs e) { Form2 frm2 = new Form2(); frm2.FormClosed += new FormClosedEventHandler(frm2_FormClosed); frm2.Show(); this.Hide(); } private void frm2_FormClosed(object sender, FormClosedEventArgs e) { this.Close(); }
Вы можете сделать закрытие родительской формы от ребенка, но мне кажется, что это немного нарушает принцип инкапсуляции.
Альтернативой является подписка на закрытое событие дочерней формы от родителя, а затем в пределах родительского элемента вы можете ответить на это - см. Закрытое событие формы Win * для реализации.