从我的评论扩展。因此,只需使用分组框(而不是说您对选项卡式界面选项的反感),但最终还是一样的。
您需要做的就是将您选择的任何元素添加到每个单独的组框中,它们都将包含在单独的组框中。
同样,这都是 UX/UI 代码,无论出于其他原因涉及的编程语言如何,都可以正常工作。您的基线 UX/UI 应该可以正常工作。后面的代码是针对其他数据、字符串、互操作需求的。
$SingleFormUXUI = New-Object -TypeName System.Windows.Forms.Form
[System.Windows.Forms.GroupBox]$grpMainPage = $null
[System.Windows.Forms.GroupBox]$grpDataPage = $null
[System.Windows.Forms.GroupBox]$grpDetailsPage = $null
[System.Windows.Forms.Label]$lblMainPage = $null
[System.Windows.Forms.Label]$lblFormPage = $null
[System.Windows.Forms.ComboBox]$cbxSelectPage = $null
function InitializeComponent
{
$grpMainPage = (New-Object -TypeName System.Windows.Forms.GroupBox)
$grpDataPage = (New-Object -TypeName System.Windows.Forms.GroupBox)
$grpDetailsPage = (New-Object -TypeName System.Windows.Forms.GroupBox)
$cbxSelectPage = (New-Object -TypeName System.Windows.Forms.ComboBox)
$lblMainPage = (New-Object -TypeName System.Windows.Forms.Label)
$lblFormPage = (New-Object -TypeName System.Windows.Forms.Label)
$grpMainPage.SuspendLayout()
$SingleFormUXUI.SuspendLayout()
#
#grpMainPage
#
$grpMainPage.Controls.Add($lblMainPage)
$grpMainPage.Location = (New-Object -TypeName System.Drawing.Point -ArgumentList @([System.Int32]11,[System.Int32]12))
$grpMainPage.Name = [System.String]'grpMainPage'
$grpMainPage.Size = (New-Object -TypeName System.Drawing.Size -ArgumentList @([System.Int32]587,[System.Int32]325))
$grpMainPage.TabIndex = [System.Int32]1
$grpMainPage.TabStop = $false
$grpMainPage.Text = [System.String]'MainPage'
$grpMainPage.UseCompatibleTextRendering = $true
$grpMainPage.Visible = $false
#
#grpDataPage
#
$grpDataPage.Location = (New-Object -TypeName System.Drawing.Point -ArgumentList @([System.Int32]12,[System.Int32]12))
$grpDataPage.Name = [System.String]'grpDataPage'
$grpDataPage.Size = (New-Object -TypeName System.Drawing.Size -ArgumentList @([System.Int32]586,[System.Int32]325))
$grpDataPage.TabIndex = [System.Int32]2
$grpDataPage.TabStop = $false
$grpDataPage.Text = [System.String]'DataPage'
$grpDataPage.UseCompatibleTextRendering = $true
$grpDataPage.Visible = $false
#
#grpDetailsPage
#
$grpDetailsPage.Location = (New-Object -TypeName System.Drawing.Point -ArgumentList @([System.Int32]12,[System.Int32]12))
$grpDetailsPage.Name = [System.String]'grpDetailsPage'
$grpDetailsPage.Size = (New-Object -TypeName System.Drawing.Size -ArgumentList @([System.Int32]586,[System.Int32]325))
$grpDetailsPage.TabIndex = [System.Int32]3
$grpDetailsPage.TabStop = $false
$grpDetailsPage.Text = [System.String]'DetailsPage'
$grpDetailsPage.UseCompatibleTextRendering = $true
$grpDetailsPage.Visible = $false
#
#cbxSelectPage
#
$cbxSelectPage.FormattingEnabled = $true
$cbxSelectPage.Items.AddRange(
[System.Object[]]@([System.String]'Main Page',
[System.String]'Data Page',
[System.String]'DetailsPage Page')
)
$cbxSelectPage.Location = (New-Object -TypeName System.Drawing.Point -ArgumentList @([System.Int32]444,[System.Int32]338))
$cbxSelectPage.Name = [System.String]'cbxSelectPage'
$cbxSelectPage.Size = (New-Object -TypeName System.Drawing.Size -ArgumentList @([System.Int32]153,[System.Int32]21))
$cbxSelectPage.TabIndex = [System.Int32]4
#
#lblMainPage
#
$lblMainPage.Location = (New-Object -TypeName System.Drawing.Point -ArgumentList @([System.Int32]7,[System.Int32]17))
$lblMainPage.Name = [System.String]'lblMainPage'
$lblMainPage.Size = (New-Object -TypeName System.Drawing.Size -ArgumentList @([System.Int32]295,[System.Int32]19))
$lblMainPage.TabIndex = [System.Int32]0
$lblMainPage.Text = [System.String]'Use the dropdown box to select a page to work with.'
$lblMainPage.UseCompatibleTextRendering = $true
$cbxSelectPage.Add_TextChanged(
{
switch($cbxSelectPage.Text)
{
'Main Page'
{
$grpMainPage.Visible = $true
$grpMainPage.BackColor = [System.Drawing.ColorTranslator]::FromHtml("#4a90e2")
$grpDataPage.Visible = $false
$grpDetailsPage.Visible = $false
}
'Data Page'
{
$grpDataPage.Visible = $true
$grpDataPage.BackColor = [System.Drawing.ColorTranslator]::FromHtml("#50e3c2")
$grpMainPage.Visible = $false
$grpDetailsPage.Visible = $false
}
'DetailsPage Page'
{
$grpDetailsPage.Visible = $true
$grpDetailsPage.BackColor = [System.Drawing.ColorTranslator]::FromHtml("#9b9b9b")
$grpMainPage.Visible = $false
$grpDataPage.Visible = $false
}
}
})
#
#SingleFormUXUI
#
$SingleFormUXUI.ClientSize = (New-Object -TypeName System.Drawing.Size -ArgumentList @([System.Int32]599,[System.Int32]375))
#
#lblFormPage
#
$lblFormPage.Location = (New-Object -TypeName System.Drawing.Point -ArgumentList @([System.Int32]10,[System.Int32]338))
$lblFormPage.Name = [System.String]'lblFormPage'
$lblFormPage.Size = (New-Object -TypeName System.Drawing.Size -ArgumentList @([System.Int32]333,[System.Int32]19))
$lblFormPage.TabIndex = [System.Int32]0
$lblFormPage.Text = [System.String]'Welcome to my UX/UI. Use the dropdown box to select a page.'
$lblFormPage.UseCompatibleTextRendering = $true
#
$SingleFormUXUI.Controls.AddRange(
@(
$lblFormPage,
$grpMainPage,
$grpDataPage,
$grpDetailsPage,
$cbxSelectPage
)
)
$SingleFormUXUI.Text = [System.String]'Single from MDI UX/UI'
$grpMainPage.ResumeLayout($false)
$SingleFormUXUI.ResumeLayout($false)
Add-Member -InputObject $SingleFormUXUI -Name grpMainPage -Value $grpMainPage -MemberType NoteProperty
Add-Member -InputObject $SingleFormUXUI -Name lblMainPage -Value $lblMainPage -MemberType NoteProperty
Add-Member -InputObject $SingleFormUXUI -Name grpDataPage -Value $grpDataPage -MemberType NoteProperty
Add-Member -InputObject $SingleFormUXUI -Name grpDetailsPage -Value $grpDetailsPage -MemberType NoteProperty
Add-Member -InputObject $SingleFormUXUI -Name cbxSelectPage -Value $cbxSelectPage -MemberType NoteProperty
$SingleFormUXUI.ShowDialog()
}
. InitializeComponent