Относительно новый для PowerShell. Может встретиться с плохой практикой
У меня странная проблема с формами и кнопками PS. Я создал небольшую GUI программу, которая гарантирует, что я установил все соответствующие программы перед отправкой компьютера из офиса.
В этой программе у меня есть раздел, в котором будет отображаться информационная форма. В этой форме будет описана программа, к кому обращаться по вопросам, et c. В этой форме у меня есть кнопка, которая выдает список серийных номеров, которые мне понадобятся для каждой программы. Текст в информационной форме заменяется соответствующей последовательной информацией. Внизу у меня есть кнопка «Назад», чтобы вернуться к исходной форме информации. Если я нажму эту кнопку, форма вернется в прежнее состояние. Что именно то, что я хочу. Но допустим, я хочу go вернуться в раздел S / N. Я нажму кнопку S / N и, конечно же, она снова приведет меня в раздел S / N. Замечательно! Но теперь, когда я нажимаю эту кнопку назад, форма быстро переключается между двумя различными текстами. Это все равно заканчивается тем, что возвращает меня обратно, но когда я go снова попадаю в секцию S / N, затем продолжаю нажимать снова, на этот раз он переключится между двумя различными текстами на еще более длительный период времени. Я мог бы проделать этот же процесс весь день, и переключение текста вперед увеличится в геометрической прогрессии. Это сводит меня с ума. Вот мой код:
$Info_Form = New-Object system.Windows.Forms.Form
$Info_Form.Text = "Information"
$Info_Form.AutoScroll = $True
$Info_Form.AutoSize = $True
$Info_Form.MinimizeBox = $False
$Info_Form.MaximizeBox = $False
$Info_Form.ShowInTaskbar = $True
$Info_Form.StartPosition = "CenterScreen"
$Info_Label = New-Object System.Windows.Forms.Label
$Info_Label.Location = New-Object System.Drawing.Size(10,10)
$Info_Label.AutoSize = $True
$SN_Btn = New-Object System.Windows.Forms.Button
$SN_Btn.Size = New-Object -TypeName System.Drawing.Size(75,23)
$SN_Btn.Location = New-Object -TypeName System.Drawing.Size(120,200)
function snForm {
$Info_Label.Text = "S/N Info Goes Here."
$SN_Btn.Text = "Back"
$SN_Btn.Add_Click({
infoForm
})
$Info_Form.Refresh()
}
function infoForm {
$Info_Label.Text = "Program Info Goes Here"
$SN_Btn.Text = "S/N's"
$SN_Btn.Add_Click({
snForm
})
if ($Info_Form.IsHandleCreated){
$Info_Form.Refresh()
} else {
$Info_Form.Controls.Add($SN_Btn)
$Info_Form.Controls.Add($Info_Label)
$Info_Form.ShowDialog()
}
}
infoForm
Пожалуйста, дайте мне знать, что вы думаете. Если я поступаю неправильно, пожалуйста, помогите мне лучше. Спасибо за ваше время!