从Powershell中的WinForm按钮中删除Add_Click(remove_Click)

时间:2018-09-05 11:00:24

标签: powershell click mouseclick-event

我对Powershell代码有一个理解上的问题,以便从WinForm按钮中删除Click事件。几个小时后……经过几天的尝试,试图理解和绝望,我想我要稍事休息了,也许你们可以帮助我。我确实阅读了有关该主题的几篇文章。但这最终没有帮助我。所以,请让我再次问这个问题。

我已经看到可以使用Eventhandlers,并且此方法似乎工作得很好。由于我的代码似乎是正确的,因为Powershell不会抛出错误,所以我想知道为什么代码行似乎无效。我真的不明白为什么。因为我发现了带有remove_Click示例的几个代码,但就我而言,这似乎没有达到我的期望。我真的不明白为什么我要您帮助我。请保持友好态度,并尝试向我解释为什么脚本的第30行无效或无效。

简短:我想做什么?我只想从按钮中删除Click事件。我可以使用Add_Click将事件添加到按钮。因此,我认为Remove_Click会从此特殊按钮中删除“点击代码”。但这似乎不起作用。如果只是通过使用“取消”按钮关闭了保存文件对话框,我只想从按钮中删除“点击属性”。

这是代码:

Add-Type -AssemblyName System.Windows.Forms


function form_status(){
$form_status = New-Object System.Windows.Forms.Form
$form_status.Size = New-Object System.Drawing.Size(800,530)
$form_status.StartPosition = 'CenterScreen'
$form_status.FormBorderStyle = 'FixedToolWindow'

$form_status_button_csv_logfile = New-Object System.Windows.Forms.Button
$form_status_button_csv_logfile.Location = New-Object System.Drawing.Point(1,1)
$form_status_button_csv_logfile.Size = New-Object System.Drawing.Size(50,50)
$form_status.Controls.Add($form_status_button_csv_logfile)
$form_status_button_csv_logfile.Add_Click({Choose-Folder-For-Checksumlog})
$form_status_button_csv_logfile.add_MouseHover({button_mousehover})
$form_status_button_csv_logfile.add_MouseLeave({button_mouseleave})

[System.Windows.Forms.Application]::EnableVisualStyles();
$form_status_result = $form_status.ShowDialog()
}

Function Choose-Folder-For-Checksumlog(){
$SaveChooser = New-Object -Typename System.Windows.Forms.SaveFileDialog
$SaveChooser.InitialDirectory = [Environment]::GetFolderPath("Desktop")
$SaveChooser.Filter = "CSV Logfile (*.csv)|*.csv"
$savechooser.FileName = "testfile.csv"

if($SaveChooser.ShowDialog() -eq [System.Windows.Forms.DialogResult]::CANCEL){
$savechooser.FileName = ""
$form_status_button_csv_logfile.Remove_Click({Choose-Folder-For-Checksumlog})
}
$checksumlog_folder = $SaveChooser.FileName
}

function button_mouseleave(){
$form_status.Cursor=[System.Windows.Forms.Cursors]::Default
}

function button_mousehover(){
$form_status.Cursor=[System.Windows.Forms.Cursors]::Hand
}

form_status

我感谢你们的任何帮助。请这么客气,向我解释我做错了什么。可能我的期望是错误的。。。但我暂时不了解。

致以亲切的问候 FernandeZ

0 个答案:

没有答案