一键二用
One button with 2 actions
我确实尝试制作 1 个按钮,执行 2 个动作:一个在第一次按下(单击),另一个在第二次按下(单击),然后重复。然而,none 我的方法对我有用,所以我制作了第二个按钮来进行第二个动作,但我真的很想只有一个。这是一个小例子,应该可以帮助你帮助我:)。
#This creates the all button and sets the event
$OKButton = New-Object System.Windows.Forms.Button
$OKButton.Location = New-Object System.Drawing.Size(60,20)
$OKButton.Size = New-Object System.Drawing.Size(30,20)
$OKButton.Text = "all"
$OKButton.Add_Click({
$ua2Checkbox.Checked=$true;
$nvsCheckbox.Checked=$true;
$krsCheckbox.Checked=$true;
$uaCheckbox.Checked=$true;
$hbrCheckbox.Checked=$true;
})
$objForm.Controls.Add($OKButton)
$objForm.Add_Shown({$objForm.Activate()})
#This creates the none button and sets the event
$OKButton = New-Object System.Windows.Forms.Button
$OKButton.Location = New-Object System.Drawing.Size(100,20)
$OKButton.Size = New-Object System.Drawing.Size(40,20)
$OKButton.Text = "None"
$OKButton.Add_Click({
$ua2Checkbox.Checked=$false;
$nvsCheckbox.Checked=$false;
$krsCheckbox.Checked=$false;
$uaCheckbox.Checked=$false;
$hbrCheckbox.Checked=$false;
})
$objForm.Controls.Add($OKButton)
$objForm.Add_Shown({$objForm.Activate()})
$actionAll = {
#$ua2Checkbox.Checked=$true;$nvsCheckbox.Checked=$true;$krsCheckbox.Checked=$true;$uaCheckbox.Checked=$true;$hbrCheckbox.Checked=$true;
#$OKButton.Add_Click($ua2Checkbox.Checked=$true;$nvsCheckbox.Checked=$true;$krsCheckbox.Checked=$true;$uaCheckbox.Checked=$true;$hbrCheckbox.Checked=$true;)
#$OKButton.Remove_click({$ua2Checkbox.Checked=$false;$nvsCheckbox.Checked=$false;$krsCheckbox.Checked=$false;$uaCheckbox.Checked=$false;$hbrCheckbox.Checked=$false;})
}
$actionnone = {
#$ua2Checkbox.Checked=$false;$nvsCheckbox.Checked=$false;$krsCheckbox.Checked=$false;$uaCheckbox.Checked=$false;$hbrCheckbox.Checked=$false;
#$OKButton.Add_Click($ua2Checkbox.Checked=$false;$nvsCheckbox.Checked=$false;$krsCheckbox.Checked=$false;$uaCheckbox.Checked=$false;$hbrCheckbox.Checked=$false;)
#$OKButton.Remove_click({$ua2Checkbox.Checked=$false;$nvsCheckbox.Checked=$false;$krsCheckbox.Checked=$false;$uaCheckbox.Checked=$false;$hbrCheckbox.Checked=$false;})
}
$OKButton.Location = New-Object System.Drawing.Size(60,20)
$OKButton.Size = New-Object System.Drawing.Size(30,20)
$OKButton.Text = "all"
$OKButton.Add_Click({invoke-expression "$actionAll"})
$OKButton.Remove_click({invoke-expression "$actionnone"})
#$OKButton.MouseDoubleClick({$ua2Checkbox.Checked=$false;$nvsCheckbox.Checked=$false;$krsCheckbox.Checked=$false;$uaCheckbox.Checked=$false;$hbrCheckbox.Checked=$false;})
$objForm.Controls.Add($OKButton)
$objForm.Add_Shown({$objForm.Activate()})
如果您想在每次单击按钮时切换按钮的动作,则需要在每个动作中用另一个动作替换当前动作:
$actionAll = {
# other operations here
$OKButton.Text = 'None'
$OKButton.Remove_Click($actionAll)
$OKButton.Add_Click($actionNone)
}
$actionNone = {
# other operations here
$OKButton.Text = 'All'
$OKButton.Remove_Click($actionNone)
$OKButton.Add_Click($actionAll)
}
$OKButton = New-Object System.Windows.Forms.Button
$OKButton.Text = 'All'
$OKButton.Add_Click($actionAll)
$objForm.Controls.Add($OKButton)
我确实尝试制作 1 个按钮,执行 2 个动作:一个在第一次按下(单击),另一个在第二次按下(单击),然后重复。然而,none 我的方法对我有用,所以我制作了第二个按钮来进行第二个动作,但我真的很想只有一个。这是一个小例子,应该可以帮助你帮助我:)。
#This creates the all button and sets the event
$OKButton = New-Object System.Windows.Forms.Button
$OKButton.Location = New-Object System.Drawing.Size(60,20)
$OKButton.Size = New-Object System.Drawing.Size(30,20)
$OKButton.Text = "all"
$OKButton.Add_Click({
$ua2Checkbox.Checked=$true;
$nvsCheckbox.Checked=$true;
$krsCheckbox.Checked=$true;
$uaCheckbox.Checked=$true;
$hbrCheckbox.Checked=$true;
})
$objForm.Controls.Add($OKButton)
$objForm.Add_Shown({$objForm.Activate()})
#This creates the none button and sets the event
$OKButton = New-Object System.Windows.Forms.Button
$OKButton.Location = New-Object System.Drawing.Size(100,20)
$OKButton.Size = New-Object System.Drawing.Size(40,20)
$OKButton.Text = "None"
$OKButton.Add_Click({
$ua2Checkbox.Checked=$false;
$nvsCheckbox.Checked=$false;
$krsCheckbox.Checked=$false;
$uaCheckbox.Checked=$false;
$hbrCheckbox.Checked=$false;
})
$objForm.Controls.Add($OKButton)
$objForm.Add_Shown({$objForm.Activate()})
$actionAll = {
#$ua2Checkbox.Checked=$true;$nvsCheckbox.Checked=$true;$krsCheckbox.Checked=$true;$uaCheckbox.Checked=$true;$hbrCheckbox.Checked=$true;
#$OKButton.Add_Click($ua2Checkbox.Checked=$true;$nvsCheckbox.Checked=$true;$krsCheckbox.Checked=$true;$uaCheckbox.Checked=$true;$hbrCheckbox.Checked=$true;)
#$OKButton.Remove_click({$ua2Checkbox.Checked=$false;$nvsCheckbox.Checked=$false;$krsCheckbox.Checked=$false;$uaCheckbox.Checked=$false;$hbrCheckbox.Checked=$false;})
}
$actionnone = {
#$ua2Checkbox.Checked=$false;$nvsCheckbox.Checked=$false;$krsCheckbox.Checked=$false;$uaCheckbox.Checked=$false;$hbrCheckbox.Checked=$false;
#$OKButton.Add_Click($ua2Checkbox.Checked=$false;$nvsCheckbox.Checked=$false;$krsCheckbox.Checked=$false;$uaCheckbox.Checked=$false;$hbrCheckbox.Checked=$false;)
#$OKButton.Remove_click({$ua2Checkbox.Checked=$false;$nvsCheckbox.Checked=$false;$krsCheckbox.Checked=$false;$uaCheckbox.Checked=$false;$hbrCheckbox.Checked=$false;})
}
$OKButton.Location = New-Object System.Drawing.Size(60,20)
$OKButton.Size = New-Object System.Drawing.Size(30,20)
$OKButton.Text = "all"
$OKButton.Add_Click({invoke-expression "$actionAll"})
$OKButton.Remove_click({invoke-expression "$actionnone"})
#$OKButton.MouseDoubleClick({$ua2Checkbox.Checked=$false;$nvsCheckbox.Checked=$false;$krsCheckbox.Checked=$false;$uaCheckbox.Checked=$false;$hbrCheckbox.Checked=$false;})
$objForm.Controls.Add($OKButton)
$objForm.Add_Shown({$objForm.Activate()})
如果您想在每次单击按钮时切换按钮的动作,则需要在每个动作中用另一个动作替换当前动作:
$actionAll = {
# other operations here
$OKButton.Text = 'None'
$OKButton.Remove_Click($actionAll)
$OKButton.Add_Click($actionNone)
}
$actionNone = {
# other operations here
$OKButton.Text = 'All'
$OKButton.Remove_Click($actionNone)
$OKButton.Add_Click($actionAll)
}
$OKButton = New-Object System.Windows.Forms.Button
$OKButton.Text = 'All'
$OKButton.Add_Click($actionAll)
$objForm.Controls.Add($OKButton)