デスクトップ ガイド (Windows フォーム .NET)

Windows 用の豊富なデスクトップ クライアント アプリを作成する UI フレームワークである、Windows フォームのデスクトップ ガイドへようこそ。 Windows フォームの開発プラットフォームでは、コントロール、グラフィックス、データ バインディング、ユーザー入力など、幅広い一連のアプリ開発機能がサポートされています。 Windows フォームには、Visual Studio のドラッグ アンド ドロップによるビジュアル デザイナーが用意されており、Windows フォーム アプリを簡単に作成できます。

重要

.NET 7 と .NET 6 用のデスクトップ ガイド ドキュメントは作成中です。

Windows フォームには、次の 2 つの実装があります。

  1. GitHub 上でホストされる、オープンソース実装。

    このバージョンは .NET 6 以降で実行されます。 Windows フォームのビジュアル デザイナーには、少なくとも Visual Studio 2019 バージョン 16.8 が必要です。

    最新バージョンは、Visual Studio 2022 バージョン 17.4 を使用する .NET 7 用 Windows フォームです。

  2. Visual Studio 2022、Visual Studio 2019、および Visual Studio 2017 でサポートされている、.NET Framework 4 の実装。

    .NET Framework 4 は .NET の Windows のみのバージョンであり、Windows オペレーティング システムのコンポーネントと見なされます。 このバージョンの Windows フォームは .NET Framework と共に配布されます。

このデスクトップ ガイドは、.NET 5 以降のバージョンの Windows フォーム向けに書かれています。 .NET Framework バージョンの Windows フォームについて詳しくは、.NET Framework 用の Windows フォームに関するページを参照してください。

はじめに

Windows フォームは、Windows デスクトップ アプリを構築するための UI フレームワークです。 Visual Studio で提供されるビジュアル デザイナーに基づいて、デスクトップ アプリを作成するための最も生産的な方法の 1 つが提供されます。 ビジュアル コントロールのドラッグ アンド ドロップ配置などの機能を使用すると、デスクトップ アプリを簡単に構築できます。

Windows フォームを使用すると、オフラインでもインターネットに接続しているときでも、簡単にデプロイ、更新、および作業を行える視覚的に豊富なアプリを開発できます。 Windows フォーム アプリからは、そのアプリが実行されているコンピューターのローカル ハードウェアとファイル システムにアクセスできます。

Windows フォーム アプリを作成する方法について学習する場合は、チュートリアル: 新しい WinForms アプリの作成に関するページを参照してください。

.NET Framework から移行する理由

.NET 用の Windows フォームでは、.NET Framework に対する新機能と拡張機能が提供されます。 詳しくは、.NET 7 用 Windows フォームでの新機能に関する記事をご覧ください。 アプリのアップグレード方法については、「Windows フォーム デスクトップ アプリを .NET 7 にアップグレードする方法」をご覧ください

リッチで対話型のユーザー インターフェイスを構築する

Windows フォームは、.NET 用の UI テクノロジであり、ファイル システムへの読み書きなど、アプリの一般的なタスクを簡略化するマネージド ライブラリのセットです。 Visual Studio などの開発環境を使用する場合、情報を表示して、ユーザーからの入力を要求し、ネットワーク経由でリモート コンピューターと通信する Windows フォームのスマート クライアント アプリを作成できます。

Windows フォームでは、"フォーム" はユーザーに情報を表示するビジュアル サーフェイスです。 通常は、コントロールをフォームに追加して、マウスのクリックやキーの押下などのユーザー アクションへの応答を開発することで、Windows フォーム アプリを構築します。 "コントロール" は、データを表示したり、データ入力を受け入れたりする独立した UI 要素です。

ユーザーがフォームまたはそのコントロールのいずれかにアクションを実行すると、そのアクションがイベントを生成します。 アプリではコードを使用してこれらのイベントに反応し、イベントが発生したときにそれらを処理します。

Windows フォームには、テキスト ボックス、ボタン、ドロップダウン ボックス、ラジオ ボタン、さらには Web ページを表示するコントロールなど、フォームに追加できるさまざまなコントロールが含まれています。 既存のコントロールがニーズを満たしていない場合、Windows フォームでは UserControl クラスを使用した独自のカスタム コントロールの作成もサポートされます。

Windows フォームには、Microsoft Office のようなハイエンド アプリの機能をエミュレートする豊富な UI コントロールが用意されています。 ToolStrip および MenuStrip コントロールを使用する場合、テキストや画像を含むツールバーとメニューを作成したり、サブメニューを表示したり、テキスト ボックスやコンボ ボックスなど、その他のコントロールをホストしたりできます。

Visual Studio でドラッグ アンド ドロップによる Windows フォーム デザイナーを使用すると、Windows フォーム アプリを簡単に作成できます。 コントロールをカーソルで選択して、フォームの任意の場所に配置するだけです。 デザイナーがグリッド線やスナップ線などのツールを提供するので、コントロールの調整が楽になります。 FlowLayoutPanelTableLayoutPanel、および SplitContainer の各コントロールを使用して、より短い時間で高度なフォーム レイアウトを作成できます。

最後に、独自のカスタム UI 要素を作成する必要がある場合は、System.Drawing 名前空間に、線、円、およびその他の図形をフォーム上に直接表示するクラスが多数含まれています。

フォームとコントロールを作成する

これらの機能を使用する方法の手順を追った説明については、次のヘルプ トピックを参照してください。

データを表示して操作する

多くのアプリでは、データベース、XML または JSON ファイル、Web サービス、あるいはその他のデータ ソースからデータを表示する必要があります。 Windows フォームは、従来の行と列の形式である、表形式のデータを表示するために、DataGridView コントロールという名前の柔軟なコントロールを提供しているため、すべてのデータが独自のセルを占有します。 DataGridView を使用すると、個別のセルの外観のカスタマイズ、任意の列と行のその場でのロック、セルの内部の複雑なコントロールの表示や、その他の機能が可能になります。

ネットワーク経由のデータ ソースへの接続は、Windows フォームを使用するシンプルなタスクです。 BindingSource コンポーネントは、データ ソースへの接続を表すものであり、データをコントロールにバインドしたり、前と次のレコードに移動したり、レコードを編集したり、変更内容を元のソースに保存したりするためのメソッドが公開されます。 BindingNavigator コントロールは、ユーザーがレコード間を移動する BindingSource コンポーネントに対して、シンプルなインターフェイスを提供します。

Visual Studio の [データ ソース] ウィンドウを使用すると、データバインド コントロールを簡単に作成できます。 このウィンドウには、プロジェクト内のデータベース、Web サービス、オブジェクトなどのデータ ソースが表示されます。 このウィンドウからプロジェクトのフォームに項目をドラッグして、データ バインド コントロールを作成できます。 また、[データ ソース] ウィンドウから既存のコントロールにオブジェクトをドラッグして、データに既存のコントロールをバインドすることもできます。

Windows フォームで管理できる別の種類のデーデータ バインドは "設定" です。 ほとんどのアプリでは、フォームの前回のサイズなどの実行時の状態に関する情報を一部保持し、保存されたファイルの既定の場所などのユーザー設定のデータを保持する必要があります。 アプリケーション設定機能は、クライアント コンピューターに両方の種類の設定を保存する簡単な方法を提供することで、こうした要件に対応します。 Visual Studio またはコード エディターを使用してこれらの設定を定義した後、設定は XML として永続化され、実行時に自動的にメモリに読み取られます。

クライアント コンピューターにアプリをデプロイする

アプリを作成した後、ユーザーにそのアプリを送信し、独自のクライアント コンピューターにインストールして実行できるようにする必要があります。 ClickOnce テクノロジを使用する場合、数回クリックするだけで、Visual Studio 内からアプリをデプロイして、Web 上のアプリを指す URL をユーザーに提供することができます。 ClickOnce により、アプリのすべての要素と依存関係が管理され、確実にクライアント コンピューターにアプリが正しくインストールされます。

ClickOnce アプリは、ユーザーがネットワークに接続されている場合にのみ実行するか、オンラインとオフラインの両方で実行するかを構成することができます。 アプリでオフライン操作がサポートされるように指定すると、ClickOnce により、ユーザーの [スタート] メニューにアプリへのリンクが追加されます。 その後、ユーザーは、URL を使用せずにそのアプリを開くことができます。

アプリを更新するときに、新しい配置マニフェストとアプリの新しいコピーを Web サーバーに発行します。 ClickOnce により、使用可能な更新プログラムがあることが検出され、ユーザーのインストールがアップグレードされます。 古いアプリを更新するためにカスタム プログラミングは必要ありません。

関連項目