powershell - Windows 窗体 (Powershell) | 消息框出现两次
问题描述
我希望你们一切都好!
下面的消息框出现了两次,我不知道为什么。仅当我在按钮之间切换时才会发生这种情况。
你能帮我理解为什么吗?
$ActiveDirectory.controls.AddRange(@($ToolsPanel,$ADToolsPanel,$VerUsersLabel,$VerUsersCancel,$VerUsersOK,$VerUsersTextBox,$FerLabelPanel))
$VerUsersOK.Add_Click({
if ($VerUsersTextBox.Textlength -eq 0){
[System.Windows.MessageBox]::Show('Não foi introduzida nenhuma informação',$ButtonText,'OK','Error')
}
})
})
$AlButton.Add_Click({
$ActiveDirectory.controls.Clear()
$AlUsersOptionsGroupbox.controls.AddRange(@($AlUsersUnlockCheckBox,$AlUsersDisableCheckBox,$AlUsersMustChangeCheckBox,$AlUsersEnableCheckBox))
$ActiveDirectory.controls.AddRange(@($ToolsPanel,$ADToolsPanel,$AlPasswordLabel,$AlPasswordTextBox,$AlUsersLabel,$AlUsersTextBox,$AlOKButton,$AlCancelButton,$AlCPasswordLabel,$AlCPasswordTextBox,$AlUsersOptionsGroupbox))
$AlOKButton.Add_Click({
if (($AlUsersTextBox.TextLength -eq 0) -or ($AlPasswordTextBox.TextLength -eq 0) -or ($AlCPasswordTextBox.TextLength -eq 0)){
$ButtonText = $AlButton.text
[System.Windows.MessageBox]::Show('Não foi introduzida nenhuma informação',$ButtonText,'OK','Error')
}
})
})
[void]$ActiveDirectory.ShowDialog()
解决方案
正如所指出的,您嵌套$AlOKButton.Add_Click
在$AlButton.Add_Click
. 每次$AlButton
点击你都会添加一个监听器到$AlOKButton
. 如果单击$AlButton
10 次,消息框将显示 10 次。
$AlButton.Add_Click({
$ActiveDirectory.controls.Clear()
$AlUsersOptionsGroupbox.controls.AddRange(@($AlUsersUnlockCheckBox,$AlUsersDisableCheckBox,$AlUsersMustChangeCheckBox,$AlUsersEnableCheckBox))
$ActiveDirectory.controls.AddRange(@($ToolsPanel,$ADToolsPanel,$AlPasswordLabel,$AlPasswordTextBox,$AlUsersLabel,$AlUsersTextBox,$AlOKButton,$AlCancelButton,$AlCPasswordLabel,$AlCPasswordTextBox,$AlUsersOptionsGroupbox))
})
$AlOKButton.Add_Click({
if (($AlUsersTextBox.TextLength -eq 0) -or ($AlPasswordTextBox.TextLength -eq 0) -or ($AlCPasswordTextBox.TextLength -eq 0)){
$ButtonText = $AlButton.text
[System.Windows.MessageBox]::Show('Não foi introduzida nenhuma informação',$ButtonText,'OK','Error')
}
})
推荐阅读
- symfony - Symfony 4,Doctrine Innerjoin 不使用联结表
- node.js - 每秒奇怪的结果测试操作
- cmake - CMake 正在一个奇怪的位置搜索包
- android - 如何将项目水平添加到导航抽屉菜单?
- reactjs - 饼图下方的标题
- html - 为什么这个 CSS 按钮不是“可点击”的?
- rest - REST 的响应(通过 Powershell 发布)不完整
- linux - 我无法获得 sftp get 命令来重命名我正在下载的文件
- redis - Redis - 如何将zrange查询的结果存储为另一个有序集
- spring-boot - 在 CORS spring security + webFlux 中启用通配符