iT邦幫忙

0

vb.net兩層MdiContainer失敗

  • 分享至 

  • xImage

各位好

我目前在用vb.net作開發
並且希望會有「爺(form1)、父(form2)、子(form3)」這樣的三層form的關係
我有將form1與form2的isMdiContainer屬性設為true
form1中會有button1,form2中會有button2
其對應的程式碼如下:

Public Class form1
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim form As New form2
        form.MdiParent = Me
        form.Show()
    End Sub
End Class
	
Public Class form2
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim form As New form3
        form.MdiParent = Me.MdiParent
        form.Show()
    End Sub
End Class

結果系統反饋說「表單不能同時為 MDI 子視窗與 MDI 父視窗。」
請問我這構想是可行的嗎?又該如何排除這個問題呢?
還請版上的高手們指點一下,謝謝

froce iT邦大師 1 級 ‧ 2022-10-18 16:11:11 檢舉
https://stackoverflow.com/questions/6076526/mdi-form-in-c-sharp-parent-and-child
這個?
看你的code感覺你要的跟這篇一樣。
breakgod iT邦新手 2 級 ‧ 2022-10-18 16:43:38 檢舉
是有類似,但不完全像,他的form2與form3皆為form1的children,但我的需求不太一樣,form1->from2->form3
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

0
rofellos
iT邦新手 2 級 ‧ 2022-10-18 17:58:33

我自己測試結果不可行
form2 會顯示MDI 容器表單必須為最上層
似乎最多form1->from2

https://learn.microsoft.com/zh-tw/dotnet/api/system.windows.forms.form.mdiparent?view=windowsdesktop-6.0

表單不能同時為 MDI 子視窗與 MDI 父視窗
這問題是form2.isMdiContainer=true

0
JamesDoge
iT邦高手 1 級 ‧ 2023-01-14 05:24:40

希望會有「爺(form1)、父(form2)、子(form3)」這樣的三層form的關係
但「表單不能同時為 MDI 子視窗與 MDI 父視窗。」
解決不了只好繞過去
改用TabControl控制項

'form1 爺視窗
Public Class Form1
'按鈕事件,點擊按鈕會打開form2
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim form2 As New Form2
form2.Show() '打開form2
End Sub
End Class

'form2 父視窗
Public Class Form2
'按鈕事件,點擊按鈕會打開form3
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim form3 As New Form3
'將form3顯示在TabControl1中
Dim tabPage As New TabPage()
tabPage.Controls.Add(form3)
tabPage.Text = "form3"
TabControl1.TabPages.Add(tabPage)
form3.Dock = DockStyle.Fill '讓form3填滿tabpage
form3.Show() '顯示form3
End Sub
End Class

'form3 子視窗
Public Class Form3
'你可以在這個form中添加其他的控制項或功能
End Class

我要發表回答

立即登入回答