連載:Windowsフォーム開発入門【Visual Studio 2010対応】

Windowsフォーム用テンプレートに学ぶ画面の作り方

初音 玲
2010/06/29

 Visual Studioの魅力の1つに豊富なテンプレートの存在がある。Visual Studio 2010にもWindowsフォーム用テンプレートが多数搭載されている。

図1 Windowsフォーム用テンプレート(VB)
Windowsフォーム・アプリケーションのプロジェクトを作成した後で、Visual Studio 2010のIDEのメニューバーから[プロジェクト]−[新しい項目の追加]を実行すると、この画面の[新しい項目の追加]ダイアログが表示される(もしくは[ソリューション エクスプローラー]でプロジェクト項目を右クリックして、表示されるコンテキスト・メニューから[追加]‐[新しい項目]を選択してもよい)。[新しい項目の追加]ダイアログの左側ペインの[インストールされたテンプレート]のツリービューから[Windows Forms]を選択すると、この画面のようにWindowsフォーム用テンプレートが表示される。

 Visual Basic 10の場合、図1にあるように、基本となる「Windows フォーム」テンプレートから、あらかじめコントロールなどの部品が配置されたレイアウト/デザイン済みのWindowsフォームなど、合計で7つのWindowsフォーム用テンプレートが付属している。

(1) 「Windows フォーム」
(2) 「MDI 親フォーム」
(3) 「エクスプローラー フォーム」
(4) 「スプラッシュ スクリーン」
(5) 「ダイアログ」
(6) 「ログイン フォーム」
(7) 「情報ボックス」

 これらのテンプレートを利用してWindowsフォーム(のソース・ファイル)をプロジェクトに追加すると、ひな型となるフォーム・デザインと、それに付随する必要最小限度のコードが生成される。これだけでも、Windowsフォーム・プログラミングの最初のお手本になる。

 そこで以下では、これら7つのテンプレートで生成されたWindowsフォームのレイアウト・デザインの内容とソース・コードの両方を、それぞれ詳しく見ていきたいと思う。

Visual C#の場合の注意点

 ただし、理由は不明だが残念なことに、Visual C# 4には(1)(2)(7)の3つのテンプレートしか付属していない。次の画面は[新しい項目の追加]ダイアログに表示されるVisual C#の場合のテンプレートの例。

図2 Windowsフォーム用テンプレート(C#)

 そこで本稿では、C#で不足しているWindowsフォーム・テンプレート「エクスプローラー フォーム」「スプラッシュ スクリーン」「ダイアログ」「ログイン フォーム」については、生成されたVBのひな型コードからC#のコードを書き起こして紹介する。なお、この差は、Visual Studio 2010特有ではなく、従来のVisual Studio 2005やVisual Studio 2008のC#でも同様である。

 本稿はVisual Studio 2010で開発することを前提としている。また、開発言語はVisual Basic(VB)である(ポイントとなる個所では、C#による説明も行う)。開発環境が手元にない場合は、無償のVisual Basic 2010 Expressを利用してほしい。

 本稿で作成するサンプル・コードは、下記のリンクからダウンロードできる。

(1)「Windowsフォーム」テンプレート[VB][C#]

 まずは最もシンプルな「Windowsフォーム」テンプレートの生成内容を簡単に説明しよう。

 [新しい項目の追加]ダイアログで「Windows フォーム」テンプレートを選び、例えば「Form1.vb」という名前でファイルの新規追加を行えば、Form1.vbファイルが既存のプロジェクトに追加される。このファイルの内容は下記のコードのようになっており、フォームにはコントロールが何も貼りついていない状態である。

Public Class Form1

End Class
リスト1 空のWindowsフォームのコード内容(VB)

 VBの場合、このPublic Classのベース・クラス(=基本クラス)はFormクラス(System.Windows.Forms名前空間)であるが、それを示す記述はForm1.vbファイルにはない。この記述は、Form1.Designer.vbファイル(=Form1.vbファイルのペアとなるファイル。前回説明)に出力されているからだ。このように一部のコードは、.Designer.vbファイルに分離されている。なお、名前空間を宣言するためのImportsディレクティブは、プロジェクト・プロパティの[参照]タブ(厳密には.vbprojファイル)に出力される。

 C#の場合、Form1.vbファイルに対応するのはForm1.csファイルとなるが、ベース・クラス名や、名前空間を宣言するためのusingディレクティブ、初期化処理の明示的な呼び出しは、Form1.csファイルに自動出力される。次のコードはその出力例である。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormTemplateCs
{
  public partial class Form1 : Form
  {
    public Form1()
    {
      InitializeComponent();
    }
  }
}
リスト2 空のWindowsフォームの内容(C#)

 続いて、(2)「MDI親フォーム」テンプレートで生成される、ひな型のフォーム・レイアウト・デザインとソース・コードを説明する。


 INDEX
  [連載]Windowsフォーム開発入門【Visual Studio 2010対応】
  Windowsフォーム用テンプレートに学ぶ画面の作り方
  1.Windowsフォーム用の7つのテンプレート/(1)Windowsフォーム
    2.(2)MDI親フォーム
    3.(3)エクスプローラ・フォーム
    4.(4)スプラッシュ・スクリーン
    5.(5)ダイアログ/(6)ログイン・フォーム/(7)情報ボックス

インデックス・ページヘ  「Windowsフォーム開発入門」


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)
- PR -

注目のテーマ

業務アプリInsider 記事ランキング

本日 月間
ソリューションFLASH