Предполагая, что я хочу, чтобы открыть Форму В из формы А, я использую следующий код в виде А:Как открыть окна формы в том же окне
FormB.Show()
Me.Close()
Это приводит к закрытию окна формы А и окно формы Б открытие. Это очень разрушительно, так можно открыть форму B в окне формы А? Я прочитал кое-что о MdiContainer, поэтому я сделал следующее:
-Создал новую Windows Form в Visual Studio, назвав ее MainForm и установив ее свойство isMdiContainer в True. -Используется следующий код при открытии Windows Forms:
FormB.MdiParent = MainForm
FormB.Show()
Me.Close()
Но это приводит к FormB не появляется вообще.
Как это сделать?
--EDIT--
На основании приведенных ниже ответов, по-видимому, по общему мнению, чтобы исключить Me.Close(). Я сделал это, но кажется, что проблема не в Me.Close()
, а в FormB.MdiParent = MainForm
. По какой-то причине всякий раз, когда я включаю эту строку в функцию LoadB формы, FormB даже не появляется вообще.
удалить Me.Close() – Creator
_ "Но это приводит к тому, что FormB вообще не отображается." _ Это происходит потому, что, когда вы вызываете 'Me.Close()', который является методом FormA.Close() ', FormA (MainForm вашего приложения) автоматически отправляет сообщение FormB, также заказывая его, даже если вы не пишете этот код: «CloseReason.FormOwnerClosing». Вместо этого используйте Me.Hide(), если вы не хотите, чтобы ваше приложение заканчивалось преждевременно. –