パワーシェルでフォームスクリプトを作成しています。フォームには、値を動的に入力するリスト ビュー コントロールがほとんどありません。「データのエクスポート」と「データの更新」という値を持つ単一のコンテキスト メニューを作成し、それをすべてのリスト ビュー コントロールにアタッチしました。リストビューコントロールのいずれかを右クリックすると、コンテキストメニューが正常に表示されます。メニューをクリックしたときに、特定のリスト ビュー コントロールのデータをエクスポート/更新する必要があります。リストビューコントロールでデータをエクスポートしてデータを更新する機能があります。
私の質問は、クリックしたリストビュー名を取得するにはどうすればよいですか? その特定のリストビューに関連付けられた機能を実行できるようにします。
これがコードです。
$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 関数で、コントロール名に応じてコードを実行します。
このクエリで私を助けてくれてありがとう. :)