PowerShell Windows Forms中TextBox高度无法调整的问题求助
解决PowerShell WinForms文本框无法调整高度的问题
核心原因
单行模式下的TextBox控件高度由系统字体行高决定,手动设置Size的高度参数不会生效,必须先开启多行模式才能自定义高度。
修复步骤
- 先将文本框的
Multiline属性设为$true,解除高度限制 - 再通过
Size属性调整宽高参数 - 可选:添加
ScrollBars属性,让文本框支持内容滚动(适合大篇幅输入场景)
完整示例代码
# 加载WinForms程序集 Add-Type -AssemblyName System.Windows.Forms # 创建主窗体 $form = New-Object System.Windows.Forms.Form $form.Text = "可调整高度的文本框" $form.Size = New-Object System.Drawing.Size(800, 800) # 创建并配置文本框 $tb = New-Object System.Windows.Forms.TextBox $tb.Multiline = $true # 关键:开启多行模式 $tb.Size = New-Object System.Drawing.Size(600, 700) # 此时高度设置会生效 $tb.ScrollBars = [System.Windows.Forms.ScrollBars]::Vertical # 可选:添加垂直滚动条 $tb.Location = New-Object System.Drawing.Point(50, 50) # 将文本框添加到窗体 $form.Controls.Add($tb) # 显示窗体 $form.ShowDialog() | Out-Null
补充说明
如果不需要多行输入但想调整高度,可改用Label控件(设置AutoSize=$false并开启WordWrap=$true),但该控件仅支持文本显示,不支持用户输入。单行TextBox的高度受限于系统字体行高,属于WinForms控件的默认行为,无法通过Size属性直接修改。
内容的提问来源于stack exchange,提问作者Amitay Tadmor
相关产品推荐
相关产品推荐

