(2024/1/28 追記) [Visual C# / WPF] 入門する (w/ Visual Studio Code)

WPF (Windows Presentation Foundation) での C# の記事です

環境構築

・Visual Studio Code
・.NET SDK ( .NET のダウンロード (Linux、macOS、Windows) (microsoft.com) )

上記を導入する

プロジェクト作成

・空フォルダを作る
・VSCode でそれを開く
・「dotnet new wpf」を実行する

プログラム起動

dotnet build     ※プログラムを変更するたびに実行すること
dotnet run

空のウィンドウが開けば成功
以後、当記事の内容は 2023/11/30 時点のテンプレートで作成された前提で記述している

改造:起動時にメッセージボックスを表示する

イベントをハンドリングする

MainWindow.xaml (フォームのデザイン) の「Window」に
「Loaded」(起動時に動作するイベント) を追加する
Loadedの値は MainWindow.xaml.cs で作るメソッド名となる

<Window x:Class="CSharp_Test.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:CSharp_Test"
        mc:Ignorable="d"
        Loaded="Window_Loaded"                            ←これ
        Title="MainWindow" Height="450" Width="800">
    <Grid>

    </Grid>
</Window>

他イベントを実装したい場合は下記を参照
Window クラス (System.Windows) | Microsoft Learn

MainWindow.xaml.cs に下記を追記する
引数はお決まりの様子
リファレンスにも書いてないが、この指定にしなければならない

    private void Window_Loaded(object sender, RoutedEventArgs e){

    }

メッセージボックスを表示する

多くのサイトでは System.Windows.Forms を継承して MessageBox を使用するようなサンプルとなっているが、
2023/11/30 時点、System.Windows に MessageBox は存在するので、
System.Windows.Forms を継承する必要はない

(2024/1/28 追記)
WPFのC# と、そうでない C# では名前領域が異なるというだけで、状況によりどちらも間違いではない
WPFの場合は System.Windows の名前領域が正しいというだけ

Loaded イベント が発生したときに実行されるメソッド Window_Loaded の中に下記を記述する

        MessageBox.Show(
            "test",
            "title",
            MessageBoxButton.OK
        );

リファレンス: MessageBox.Show メソッド (System.Windows) | Microsoft Learn

実行結果

メッセージが表示される


Visual Studio でやるのは嫌なので VSCode での C# 開発を確認してみた
何かしらのツール作成で役立てたい

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

Share via
Copy link