簡體   English   中英

Powershell傳遞函數作為參數

[英]Powershell pass a function as a parameter

我是編程界的新手,我正在嘗試使用函數創建按鈕和標簽等來創建表單。創建表單的例外是傳遞給按鈕單擊事件的函數未正確傳遞。 例如,我有一個創建按鈕的功能。

function new_btn ($name, $parent, $x, $y, $l, $h, $text, $onClick){
    $object = New-Object System.Windows.Forms.Button
    $object.Location = New-Object System.Drawing.Point($x, $y)
    $Object.Size = New-Object System.Drawing.Size($l, $h)
    $Object.Text = $text
    $object.add_Click({$onClick})
    New-Variable $name -Value $object -Scope global
    (Get-Variable $parent).Value.Controls.Add((Get-Variable $name).value)
}

然后,我具有要在按鈕單擊上運行的功能.....

function msg {
    [System.Windows.Forms.MessageBox]::Show("We are proceeding with next step.") 

}

然后,我調用該函數並為其提供參數。

new_btn getdbslist tab1 20 50 69 23“獲取數據庫的”消息

這將按預期產生按鈕並將其添加到tab1,但是on單擊事件將不起作用,什么也沒有發生。 任何幫助將不勝感激!

您只是傳遞一個字符串。 而是傳遞一個腳本塊:

new_btn getdbslist tab1 20 50 69 23 'Get DBs' {
  [System.Windows.Forms.MessageBox]::Show("We are proceeding with next step.") 
}

new_btn函數中,您可能只需要使用

$object.add_Click($onClick)

如果您確實要傳遞字符串,則可能需要使用以下內容:

$object.add_Click({ & $onClick })

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM