在Powershell中创建.NET 4(WinForms)动态表单控件
我正在尝试将表单控件动态添加到我在PowerShell中开发的gui中。我看过VB和C#示例,但似乎无法让我的表单实际使用新控件填充gui。我想要的是能够在表单中附加大量的附加控件,并且添加的控件会被转储到一个可滚动的字段中,这样它们就不会离开gui。我试图实现这一点的方法是在tablelayoutpanel中附加一个组合框。我的想法是,用一个新的combobox控件向tablelayoutpanel添加一个新行就可以实现这一点。所以我想我有两个问题:在Powershell中创建.NET 4(WinForms)动态表单控件,winforms,powershell,Winforms,Powershell,我正在尝试将表单控件动态添加到我在PowerShell中开发的gui中。我看过VB和C#示例,但似乎无法让我的表单实际使用新控件填充gui。我想要的是能够在表单中附加大量的附加控件,并且添加的控件会被转储到一个可滚动的字段中,这样它们就不会离开gui。我试图实现这一点的方法是在tablelayoutpanel中附加一个组合框。我的想法是,用一个新的combobox控件向tablelayoutpanel添加一个新行就可以实现这一点。所以我想我有两个问题: 这是一种逻辑上正确的方法,可以动态地将控件
$button1_Click={
$new = New-Object System.Windows.Forms.ComboBox
Add-ComboBox $rowCount
$rowCount++
}
function Add-ComboBox {
param([string] $rowCount)
$combobox = New-Object System.Windows.Forms.ComboBox
$combobox.Dock = [System.Windows.Forms.DockStyle]::Fill
$combobox.Text = ""
$combobox.Tag = "ComboBox$rowCount"
$tablelayoutpanel1.Controls.Add($combobox, 1, $rowCount)
}
非常感谢您的帮助。这可能很有用,尽管它是WPF,但代码段会创建一个窗口,窗口上有几个按钮,根据添加到StackPanel的按钮数量调整大小
$window = new-object System.Windows.Window
$stackPanel = new-object System.Windows.Controls.StackPanel
$buttonNum = 20
for( $i = 0; $i -lt $buttonNum; $i++ )
{
$button = new-object System.Windows.Controls.Button
$button.Content = "Button Text" + $i
$stackPanel.Children.Add( $button )
}
$scrollViewer = new-object System.Windows.Controls.ScrollViewer
$scrollViewer.Content = $stackPanel
$window.Content = $scrollViewer
$window.SizeToContent = [System.Windows.SizeToContent]::Width
$window.Height = 100
$window.ShowDialog()
这可能很有用,尽管它是WPF,但代码段创建了一个窗口,窗口上有几个按钮,根据添加到StackPanel的按钮数量调整大小
$window = new-object System.Windows.Window
$stackPanel = new-object System.Windows.Controls.StackPanel
$buttonNum = 20
for( $i = 0; $i -lt $buttonNum; $i++ )
{
$button = new-object System.Windows.Controls.Button
$button.Content = "Button Text" + $i
$stackPanel.Children.Add( $button )
}
$scrollViewer = new-object System.Windows.Controls.ScrollViewer
$scrollViewer.Content = $stackPanel
$window.Content = $scrollViewer
$window.SizeToContent = [System.Windows.SizeToContent]::Width
$window.Height = 100
$window.ShowDialog()
我在微软Technet论坛上找到了答案。一位论坛主持人一直在帮我解决这个问题。谢谢你
我在Microsoft Technet论坛上找到了答案。一位论坛主持人一直在帮我解决这个问题。谢谢你
我在Windows 7上使用的是Windows PowerShell ISE 2.0,而您仅使用此代码就完成了我所描述的内容??当我运行代码时,我在调用空对象上的方法时出错。我在Windows 7上使用Windows PowerShell ISE 2.0,而您仅使用此代码来完成我描述的内容??当我运行代码时,我会在调用Null对象上的方法时出错。