PowerShell で GUI 開発(WinForms)する際、Size と Location を気にしなくていいように、デザインツールを作った

アドベントカレンダーネタで作った WinForms スタイルのデザインツールを引っ張り出してカスタマイズしてみました。PowerShell だけで書き直したかったのですが断念orz。C# + WinForms のアプリです。

続きを読む

PowerShell で GUI 開発(WPF)とか。

以前、PowerShell で GUI 開発(WinForms)とか。 - sutefu7.comっていうのを書いたのですけど、今度は WPF 版です。各コントロールのサイズや位置調整を考えなくてもいいので超楽です!その代わり、Windowタグ名前空間は暗記している方少ないと思いますので、これが問題なんですよね・・・。

続きを読む

テキストファイルに記載された名前一覧をもとに、フォルダを作成する

ツイッターで見かけたので、bat ファイルの PowerShell 版です。bat ファイルだけで完結するのに敢えて挑戦するのはエンジニアだから仕方がないのです。。。PowerShell なのは何となくです。。。

続きを読む

PowerShell で GUI 開発(WinForms)とか。

こういうのね。Visual Studio 禁止とかスペック不足とか、非開発部門だけど開発したい!(というよりは、エンジニアじゃないけど、業務改善用のプログラム開発したい!かな)という方はいらっしゃるのかな?

test.bat

@echo off
powershell -NoProfile -ExecutionPolicy Unrestricted .\test.ps1

test.ps1

# 仕様として、dll の参照追加よりも、using 名前空間の方を先に記載しなくちゃいけない
using namespace System.Windows.Forms
Add-Type -AssemblyName System.Windows.Forms
Add-Type -AssemblyName System.Drawing

# ビジュアルスタイルを適用(未記載の場合クラシック形式の表示)
[Application]::EnableVisualStyles()


# ラベルと入力欄
$lbl = New-Object Label
$lbl.Text = "名前:"
$lbl.Location = "0, 22"
$lbl.AutoSize = $True

$txt = New-Object TextBox
$txt.Name = "textbox1"
$txt.Text = "Hello, World!"
$txt.Location = "40, 20"

# 確認ボタン
$btn = New-Object Button
$btn.Text = "確認"
$btn.Size = "120, 40"
$btn.Location = "170, 10"

# ボタンのクリック
$button_Click = {
    ($sender, $e) = $this, $_
    $parent = ($sender -as [Button]).Parent -as [Form]
    $txt = [TextBox]$parent.Controls["textbox1"];
    [MessageBox]::Show("「" + $txt.Text + "」と入力しました!", "情報", "OK", "Information")
}
$btn.Add_Click($button_Click)

# フォーム
$f = New-Object Form
$f.Text = "Form1"
$f.Size = "360, 240"
$f.Controls.AddRange(@($lbl, $txt, $btn))
$f.ShowDialog()