@1rayman1

Powershell GUI как скрыть или удалить кнопку при нажатии?

Есть кусок кода:
Add-Type -Assembly System.Windows.Forms
Add-Type -AssemblyName System.Drawing
Import-Module ActiveDirectory

$MainForm = New-Object System.Windows.Forms.Form
$ToolTip = New-Object System.Windows.Forms.ToolTip
$ToolTip.BackColor = [System.Drawing.Color]::LightGoldenrodYellow
$MainForm.StartPosition = "CenterScreen"
$MainForm.Text ='Запросы в AD'
$MainForm.Width = 700
$MainForm.Height = 400
$MainForm.AutoSize = $true

        $ButtonGet1 = New-Object System.Windows.Forms.Button
        $ButtonGet1.Location = New-Object System.Drawing.Point(100,100)
        $ButtonGet1.Text = "Включить"
        $ButtonGet1.Autosize = $true
        $ButtonGet1.add_click({ 
        Get-ADUser -Filter {Name -like "Иванов Иван Иванович"} | Enable-ADAccount
        $MainForm.Controls.Remove($ButtonGet1)
        })
        $MainForm.Controls.Add($ButtonGet1)


        $ButtonGet2 = New-Object System.Windows.Forms.Button
        $ButtonGet2.Location = New-Object System.Drawing.Point(200,200)
        $ButtonGet2.Text = "Включить"
        $ButtonGet2.Autosize = $true
        $ButtonGet2.add_click({
        Get-ADUser -Filter {Name -like "Иванов Иван Иванович"} | disable-ADAccount
        $MainForm.Controls.Remove($ButtonGet2)
        })
        $MainForm.Controls.Add($ButtonGet2)


$MainForm.ShowDialog()

на этой форме просто 2 кнопки при нажатии на которые учетная запись блокируется либо разблокируется и после нажатия кнопка удалится с формы это меня и интересует
Но если я меняю код и вставляю кнопки в другую кнопку (появляются на форме только при нажатии на другую кнопку ) после нажатия на эту кнопку учетная запись блокируется либо разблокируется, но кнопки с формы не удаляются, помогите, как это исправить и возможно есть еще более простое решение? Возможно у кнопки просто есть свойство скрывать при нажатии.
Add-Type -Assembly System.Windows.Forms
Add-Type -AssemblyName System.Drawing
Import-Module ActiveDirectory

$MainForm = New-Object System.Windows.Forms.Form
$ToolTip = New-Object System.Windows.Forms.ToolTip
$ToolTip.BackColor = [System.Drawing.Color]::LightGoldenrodYellow
$MainForm.StartPosition = "CenterScreen"
$MainForm.Text ='Запросы в AD'
$MainForm.Width = 700
$MainForm.Height = 400
$MainForm.AutoSize = $true

$ButtonGet = New-Object System.Windows.Forms.Button
$ButtonGet.Location = New-Object System.Drawing.Point(50,50)
$ButtonGet.Text = "Получить"
$ButtonGet.Autosize = $true
$ButtonGet.add_click({


        
    $aduser = Get-ADUser -Filter {Name -like "Иванов Иван Иванович"} -Properties *
    if ( $aduser.enabled -eq "True")
        {
        $ButtonGet2 = New-Object System.Windows.Forms.Button
        $ButtonGet2.Location = New-Object System.Drawing.Point(200,200)
        $ButtonGet2.Text = "Включить"
        $ButtonGet2.Autosize = $true
        $ButtonGet2.add_click({
        Get-ADUser -Filter {Name -like "Иванов Иван Иванович"} | disable-ADAccount
        $MainForm.Controls.Remove($ButtonGet2)
        })
        $MainForm.Controls.Add($ButtonGet2)
        }
    else
        {
        $ButtonGet1 = New-Object System.Windows.Forms.Button
        $ButtonGet1.Location = New-Object System.Drawing.Point(100,100)
        $ButtonGet1.Text = "Включить"
        $ButtonGet1.Autosize = $true
        $ButtonGet1.add_click({ 
        Get-ADUser -Filter {Name -like "Иванов Иван Иванович"} | Enable-ADAccount
        $MainForm.Controls.Remove($ButtonGet1)
        })
        $MainForm.Controls.Add($ButtonGet1)
        }

})
$MainForm.Controls.Add($ButtonGet)      


$MainForm.ShowDialog()
  • Вопрос задан
  • 297 просмотров
Решения вопроса 1
@1rayman1 Автор вопроса
эти свойства не отрабатывают если их вещать на нажатие кнопки во втором варианте кода
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
firedragon
@firedragon
Не джун-мидл-сеньор, а трус-балбес-бывалый.
У кнопки есть свойство Enabled и Visible используйте их.
Как подсказка это документация или откройте visual studio и проверьте что вам нужно
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы