ソフトウェア開発 / PowerShell

PowerShell

GUI

Drag & Drop

# ------------------------------------------------------------------------------
# ドラッグ&ドロップのサンプル
# ------------------------------------------------------------------------------
Add-Type -AssemblyName System.Drawing
Add-Type -AssemblyName System.Windows.Forms


# ----------------------------------------------------------
# メイン画面
# ----------------------------------------------------------
$form = New-Object System.Windows.Forms.Form
$form.Text = "Drag & Drop"
$form.Size = New-Object System.Drawing.Size(640, 480)

$form.AllowDrop = $true

function IsTargetFile($filename) {
    if ([IO.Path]::GetExtension($filename) -eq ".txt") {
        return $true
    } else {
        return $false
    }
}
$form.Add_DragDrop({
    foreach ($filename in $_.Data.GetData([Windows.Forms.DataFormats]::FileDrop)) {
        if (IsTargetFile($filename)) {
            Write-Host $filename
        }
    }
})
$form.Add_DragOver({
    foreach ($filename in $_.Data.GetData([Windows.Forms.DataFormats]::FileDrop)) {
        if (IsTargetFile($filename)) {
            $_.Effect = [Windows.Forms.DragDropEffects]::All
        }
    }
})


# ----------------------------------------------------------
# 実行ボタン
# ----------------------------------------------------------
$executeButton = New-Object System.Windows.Forms.Button
$form.Controls.Add($executeButton)

$executeButton.Location = New-Object System.Drawing.Point(520, 390)
$executeButton.Size = New-Object System.Drawing.Size(80, 30)
$executeButton.Text = "実行"
$executeButton.Add_Click({
    Write-Host "実行ボタンクリック"
})


# ----------------------------------------------------------
# 画面表示
# ----------------------------------------------------------
$form.ShowDialog()

トップ   一覧 検索 最終更新   ヘルプ   最終更新のRSS