0
我一直在試圖自己找到這個,但我不完全確定如何解釋這個問題。基本上我在這裏做的是取一個名稱數組,並從中爲每個名稱創建一個複選框。編輯:我認爲下面的代碼片段也工作,但它看起來像這可能不實際工作?嘗試在for循環中設置複選框的屬性
New-object System.Windows.Forms.CheckBox | New-Variable -Name ("checkbox" + $_)
我遇到的主要問題是這樣的:一旦它們被創建後,我如何實際設置這些變量名爲複選框的屬性?基本上如何獲取每個迭代的變量名稱,然後執行$ checkbox.margin和這些設置。我已經在下面發佈了我的整個腳本,這是非常棒的,我知道還有一些其他的東西很奇怪,但是我打算在解決這個問題後將其排除。
$form = New-Object System.Windows.Forms.Form
$flowlayoutpanel = New-Object System.Windows.Forms.FlowLayoutPanel
$buttonOK = New-Object System.Windows.Forms.Button
$usernames = "andrew", "beth", "charlie", "dave", "james", "george"
$totalvalues = ($usernames.count)
$formsize = 85 + (30 * $totalvalues)
$flowlayoutsize = 10 + (30 * $totalvalues)
$buttonplacement = 40 + (30 * $totalvalues)
$form_Load = {
0..$totalvalues|%{
New-object System.Windows.Forms.CheckBox | New-Variable -Name ("checkbox" + $_)
('$checkbox' + $_).Margin = '10, 8, 0, 0'
$checkbox.Margin = '10, 8, 0, 0'
$checkbox.Name = 'checkbox' + $_
$checkbox.Size = '200, 22'
$checkbox.Text = "" + $usernames[$_]
$checkbox.TextAlign = 'MiddleLeft'
$flowlayoutpanel.Controls.Add($checkbox)
}
}
$form.Controls.Add($flowlayoutpanel)
$form.Controls.Add($buttonOK)
$form.AcceptButton = $buttonOK
$form.AutoScaleDimensions = '8, 17'
$form.AutoScaleMode = 'Font'
$form.ClientSize = "500 , $formsize"
$form.FormBorderStyle = 'FixedDialog'
$form.Margin = '5, 5, 5, 5'
$form.MaximizeBox = $False
$form.MinimizeBox = $False
$form.Name = 'form1'
$form.StartPosition = 'CenterScreen'
$form.Text = 'Form'
$form.add_Load($form_Load)
$flowlayoutpanel.BorderStyle = 'FixedSingle'
$flowlayoutpanel.Location = '48, 13'
$flowlayoutpanel.Margin = '4, 4, 4, 4'
$flowlayoutpanel.Name = 'flowlayoutpanel1'
$flowlayoutpanel.Size = "400, $flowlayoutsize"
$flowlayoutpanel.TabIndex = 1
$buttonOK.Anchor = 'Bottom, Right'
$buttonOK.DialogResult = 'OK'
$buttonOK.Location = "383, $buttonplacement"
$buttonOK.Margin = '4, 4, 4, 4'
$buttonOK.Name = 'buttonOK'
$buttonOK.Size = '100, 30'
$buttonOK.TabIndex = 0
$buttonOK.Text = '&OK'
$form.ShowDialog()
謝謝您更換循環foreacheach,如果我這樣做是這樣,這將是檢查的複選框的狀態,最好的辦法,一旦確定按鈕被擊中?或者應該是一個單獨的問題? – Sheep
Plase提出一個單獨的問題。如果這解決了您的問題,請將其標記爲答案 – guiwhatsthat