.NET 4 (WinForms) Создание динамического элемента управления формы в Powershell - PullRequest
1 голос
/ 03 июня 2011

Я пытаюсь динамически добавлять элементы управления формой в графический интерфейс, который я разрабатываю в PowerShell. Я посмотрел на примеры VB и C #, но не могу заставить мою форму фактически заполнить графический интерфейс с новым элементом управления. Я хочу иметь возможность добавлять потенциально большое количество дополнительных элементов управления в форму, а добавленные элементы управления сбрасываются в поле с возможностью прокрутки, чтобы они не попадали в конец графического интерфейса. Как я пытался это сделать, это добавить комбинированный список на панель стола. Моя идея заключалась в том, чтобы добавить новую строку в табличную панель с новым списком управления. Итак, я полагаю, у меня есть два вопроса:

  1. Является ли это логически правильным способом динамического добавления элементов управления к объекту, который допускает переполнение при прокрутке?
  2. Если # 1 верно, как мне выполнить эту задачу?

Это самая последняя итерация моих попыток:

$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)
}

Ваша помощь очень ценится.

Ответы [ 2 ]

1 голос
/ 03 июня 2011

Это может быть полезно, хотя это 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()
0 голосов
/ 15 июня 2011

Я нашел ответ на форумах Microsoft Technet.Модератор форума помог мне с этим.Спасибо, хотя!

http://social.technet.microsoft.com/Forums/en-US/ITCG/thread/b2c8abeb-3ae6-4936-9bef-a50a79fdff45/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...