【发布时间】:2022-11-03 19:57:58
【问题描述】:
我正在使用 WinForms 创建一个表单,我想添加一个带有多个标签和文本框的可滚动区域。
这是我的表单代码(还有更多特定于我的项目的代码,但这应该是它的要点):
$form = New-Object system.Windows.Forms.Form
$form.ClientSize = New-Object System.Drawing.Point(350,380)
$tabcontrol = New-object System.Windows.Forms.TabControl
$tabcontrol.Size = New-Object System.Drawing.Point(330,330)
$tabcontrol.Location = New-Object System.Drawing.Point(10,10)
$form.Controls.Add($tabcontrol)
$tab = New-object System.Windows.Forms.Tabpage
$tab.Text = "Tab1"
$tabcontrol.Controls.Add($tab)
我尝试将 ScrollableControl 添加到 $tab:
$scroll = New-Object System.Windows.Forms.ScrollableControl
$scroll.AutoScroll = $true
$scroll.AutoScrollMinSize = New-Object System.Drawing.Size (0, 200)
$scroll.VerticalScroll.LargeChange = 20
$scroll.VerticalScroll.SmallChange = 7
$tab.Controls.Add($scroll)
当我启动表单时,Tab1 ($tab) 上没有滚动条或任何内容。我尝试向$scroll 添加控件,例如 System.Windows.Forms.Label 或 System.Windows.Forms.TextBox,但仍然没有。
那么我做错了什么?如何向$tab 添加可滚动控件?
【问题讨论】:
-
IIIRC,标签页在内容超过大小时自动获取滚动条。所以只需将控件插入标签页(可视区域之外)
-
@PMF 有趣。我尝试添加 20 多个控件,在 6 个左右之后,它就被切断了。没有滚动条,或任何访问其余对象的方式。
-
为我工作。尝试设置
$tab.AutoScroll = true和$tab.Size = new Size(something very large) -
@PMF 哦,我知道我做错了什么。我在 ScrollableControl 对象 (
$scroll.AutoScroll = $true) 上设置AutoScroll = $true,而不是 Tabpage 对象 ($tab.AutoScroll = $true)。当我设置$tab.AutoScroll = $true时,它可以工作。谢谢!
标签: powershell winforms