PowerShell GUI検索アプリに「タブ表示機能」を追加!


検索をやり直すたびに前の結果が消えてしまう…
そんな悩みを解決するのが、検索結果をタブ形式で残せる機能です!


今回追加する機能

機能内容
タブ形式の検索結果表示検索ごとに新しいタブを作成し、結果を表示
タブの切り替え複数の検索結果を並行して比較可能
タブの閉じるボタン不要になった検索結果は個別に閉じられる

TabControlの追加と使い方

まず、フォームに TabControl を追加しておきます。

タブを動的に追加するコード

# 新しいTabPage作成
$tabPage = New-Object System.Windows.Forms.TabPage
$tabPage.Text = "検索 " + (Get-Date).ToString("HH:mm:ss")

# 結果用のListBoxを生成
$listBox = New-Object System.Windows.Forms.ListBox
$listBox.Dock = 'Fill'
$listBox.Items.AddRange($SearchResults)

# タブにListBoxを追加
$tabPage.Controls.Add($listBox)

# TabControlに追加
$TabControl_Results.TabPages.Add($tabPage)

タブに検索条件も表示したい場合

タブ名にキーワードや拡張子などを入れておくと、どの検索かわかりやすくなります。

$keyword = $TextBox_Keyword.Text
$ext     = $TextBox_Ext.Text
$tabPage.Text = "[$keyword][$ext]"

タブを閉じる機能(右クリックメニューなど)

# 右クリックでタブを閉じるメニュー追加
$contextMenu = New-Object System.Windows.Forms.ContextMenu
$menuItem = New-Object System.Windows.Forms.MenuItem "タブを閉じる"
$menuItem.add_Click({
    $TabControl_Results.TabPages.Remove($TabControl_Results.SelectedTab)
})
$contextMenu.MenuItems.Add($menuItem)
$TabControl_Results.ContextMenu = $contextMenu

UI構成案

  • 検索を実行するたびに新しいタブが作られる
  • 各タブには ListBox でファイル一覧を表示
  • タブ上で右クリックして「閉じる」が選べると便利!

メリット

  • 複数の検索結果を保持して比較が可能
  • 「前の検索結果もう一度見たい」がすぐできる
  • 条件ごとに結果を並べて確認できる

まとめ

タブ表示を取り入れることで、PowerShell検索アプリは一気にプロっぽく進化します!
「複数の条件で調べながら作業したい」という実務にピッタリな機能です!


次回予告

次回は、検索結果のエクスポート(CSVやHTML)機能を追加して、外部に共有できるようにしていきます!


コメント

タイトルとURLをコピーしました