Winforms .底部为只读

Winforms .底部为只读,winforms,powershell,listbox,resize,Winforms,Powershell,Listbox,Resize,我正在编写一个PowerShell脚本,它使用停靠的窗体和面板。我可以很好地创建表单和面板,但是在运行时使用$inputbox.Bottom=$form.Height-215控制大小时,我在获取列表框的大小时遇到了问题,但是我收到了错误 “Bottom”是只读属性 简单地在面板中使用填充将不起作用,因为我在列表框的上方和下方都有按钮。以下是我的代码示例: [void] [System.Reflection.Assembly]::LoadWithPartialName(“System.Window

我正在编写一个PowerShell脚本,它使用停靠的窗体和面板。我可以很好地创建表单和面板,但是在运行时使用$inputbox.Bottom=$form.Height-215控制大小时,我在获取列表框的大小时遇到了问题,但是我收到了错误

“Bottom”是只读属性

简单地在面板中使用填充将不起作用,因为我在列表框的上方和下方都有按钮。以下是我的代码示例:

[void] [System.Reflection.Assembly]::LoadWithPartialName(“System.Windows.Forms”)
[void] [System.Reflection.Assembly]::LoadWithPartialName(“System.Drawing”)

$form.ResizeEnd
$form = New-Object System.Windows.Forms.Form
$form.Size = New-Object System.Drawing.Size(1040,459)
$form.KeyPreview = $true
$form.StartPosition = ‘centerscreen’
$form.BackColor = 'MidnightBlue'
$form.Add_KeyDown({if($_.KeyCode -eq "Escape"){$form.Close()}})
$form.Text = "Dialog Box 2.0" 
$form.Icon = [system.drawing.icon]::ExtractAssociatedIcon($PSHOME + "\powershell_ise.exe")

$buttonPanel3 = New-Object Windows.Forms.Panel
$buttonPanel3.Size = New-Object Drawing.Size @(290,70)
$buttonPanel3.Dock = "left"
$buttonPanel3.BackColor = 'Blue'

$inputbox = New-Object System.Windows.Forms.ListBox
$inputbox.BorderStyle = 'NONE'
$inputbox.Font = New-Object System.Drawing.Font(“segoe UI”,9)
$inputbox.SelectionMode = "MultiExtended"
$inputbox.Left = 10
$inputbox.Top = 105
$inputbox.Width = 200
$inputbox.Bottom = $form.Height -215
$inputbox.Height = $form.Height -215

$buttonPanel3.Controls.Add($inputbox)
$form.Controls.Add($buttonPanel3)
$form.ShowDialog()

如果有人能给出一个列表框的示例代码,当你调整表单大小时,它的大小主要与垂直扩展有关,那将是非常好的。

我最终完全重新安排了表单并使用了fill方法,但我想介绍一下表单大小调整的小技巧,因为这才是真正的问题

表单的调整大小处理程序将是$form.Add_resize{}。在括号内,我可以根据需要修改高度和宽度属性。在本例中,我只需要height属性,因此代码如下:

[void] [System.Reflection.Assembly]::LoadWithPartialName(“System.Windows.Forms”)
[void] [System.Reflection.Assembly]::LoadWithPartialName(“System.Drawing”)

$form.ResizeEnd
$form = New-Object System.Windows.Forms.Form
$form.Size = New-Object System.Drawing.Size(1040,459)
$form.KeyPreview = $true
$form.StartPosition = ‘centerscreen’
$form.BackColor = 'MidnightBlue'
$form.Add_KeyDown({if($_.KeyCode -eq "Escape"){$form.Close()}})
$form.Text = "Dialog Box 2.0" 
$form.Icon = [system.drawing.icon]::ExtractAssociatedIcon($PSHOME + "\powershell_ise.exe")
$form.Add_Resize({
    $inputbox.Height = $form.Height -215
})

$buttonPanel3 = New-Object Windows.Forms.Panel
$buttonPanel3.Size = New-Object Drawing.Size @(290,70)
$buttonPanel3.Dock = "left"
$buttonPanel3.BackColor = 'Blue'

$inputbox = New-Object System.Windows.Forms.ListBox
$inputbox.BorderStyle = 'NONE'
$inputbox.Font = New-Object System.Drawing.Font(“segoe UI”,9)
$inputbox.SelectionMode = "MultiExtended"
$inputbox.Left = 10
$inputbox.Top = 105
$inputbox.Width = 200
$inputbox.Height = $form.Height -215

$buttonPanel3.Controls.Add($inputbox)
$form.Controls.Add($buttonPanel3)
$form.ShowDialog()

编辑Height属性,而不是Bottom属性当我编辑Height属性时,它将正确初始化,但在程序运行时它不会修改。是否尝试手动(即通过拖动控件的边框)执行此操作?在显示窗体时,我没有看到任何试图以编程方式调整控件大小的尝试。请举例说明如何进行调整。如何进行调整?您是在寻找一个用户可调整大小的listbox控件,还是一个如何以编程方式调整控件大小的示例?