簡體   English   中英

從上下文菜單獲取當前控件名稱

[英]Get current control name from context menu

我在Power Shell中擰了一個表單腳本。 在表單中,我只有幾個列表視圖控件,這些控件將動態填充值。 我創建了一個單獨的上下文菜單,其值為“導出數據”和“刷新數據”,並將其附加到所有列表視圖控件。 當我右鍵單擊任何列表視圖控件時,上下文菜單顯示正常。 單擊菜單時,我需要導出/刷新該特定列表視圖控件中的數據。 我具有導出數據和刷新列表視圖控件中的數據的功能。

我的問題是,如何獲得單擊的列表視圖名稱? 這樣我就可以執行與該特定列表視圖關聯的功能。

這是代碼。

$ctxMenu = New-Object System.Windows.Forms.ContextMenu
$ctxExportDataMenuItem = New-Object System.Windows.Forms.MenuItem
$ctxExportDataMenuItem.Text = "Export To CSV"
$ctxRefreshDataMenuItem = New-Object System.Windows.Forms.MenuItem
$ctxRefreshDataMenuItem.Text = "Refresh"        
$ctxExportDataMenuItem.Add_Click({Export-ToCsv})
$ctxRefreshDataMenuItem.Add_Click({Refresh-ListView"})
$ctxMenu.MenuItems.AddRange(@($ctxExportDataMenuItem,$ctxRefreshDataMenuItem)) 

$sysSysEvtListView = New-Object System.Windows.Forms.ListView
$sysAppEvtListView = New-Object System.Windows.Forms.ListView 

$sysSysEvtListView.ContextMenu = $ctxMenu
$frmMain.Controls.Add($sysSysEvtListView) | Out-Null

$sysAppEvtListView.ContextMenu = $ctxMenu
$frmMain.Controls.Add($sysAppEvtListView) | Out-Null

當單擊任何列表視圖時,我需要將控件名稱捕獲到變量中。 然后在export-tocsv函數中,我將根據控件名稱執行代碼。

感謝您幫助我進行此查詢。 :)

在事件處理程序腳本塊中,您可以訪問$ this和$ _,它們引用事件的Sender和EventArgs。 在MenuItem事件處理程序中,您可以像這樣獲得ListView名稱:

$ctxRefreshDataMenuItem.Add_Click({Write-Host $this.Parent.SourceControl.Name})

暫無
暫無

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

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