狠狠撸

狠狠撸Share a Scribd company logo
C# 継承フォームの作成
Microsoft MVP Hiroki.T
http://blog.hiros-dot.net/
copyright @2015 HIRO's.NET All Rights Reserved.
継承フォーム
? 1つのプロジェクト内で似たようなフォームをたくさん作成する場
合は、共通した部分を抜き出したフォームを作成して継承するよ
うにしましょう。
? たとえば、複数のフォームに共通でステータスバーと[閉じる]ボタ
ンを持たせたいとします。
? この場合、共通部分はステータスバーと[閉じる]ボタンです。
? ステータスバーと[閉じる]部分だけを貼り付けた基本フォームを作
成しておいて、継承するようにします。
例
共通部分は
ステータスバーと[閉じる]ボタン
共通部分を抜き出したフォームを作成する
共通部品のみ貼り付けた
フォームを作成
この例ではファイル名を
frmBase.csとする
? プロジェクトに新規でフォームを1つ追加して以下のように設定し
ます。
共通フォームの[閉じる]ボタンの
クリックイベントコードを編集する
? 各フォームの[閉じる]ボタンに処理をいちいち記述するのは面倒です。
? そこで共通フォームに配置した[閉じる]ボタンのクリックイベントのコードを以下の
ように編集しておきます。これにより、共通フォームを継承しているフォームに
[閉じる]ボタンの処理を記述する必要がなくなります。
/// <summary>
/// 共通フォームの[閉じる]ボタンのコード
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnClose_Click(object sender, EventArgs e)
{
this.Close();
}
共通フォームを継承したフォームを作成する
? プロジェクトに最初からあるForm1を、共通フォームを継承した
フォームにします。
? Form1のコードを開き継承元をFormからfrmBaseに変更します。
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
}
public partial class Form1 : frmBase
{
public Form1()
{
InitializeComponent();
}
}
frmBaseを継承したForm1を
デザイナで確認する
? frmBaseを継承したForm1をデザイナで確認してみましょう。
? 共通フォームに配置した、ステータスバーと[閉じる]ボタンが表示されていることを確認できま
す。
? 共通フォームに配置されていたステータスバーと[閉じる]ボタンの左上隅に小さな■のアイコ
ンが表示されています。これにより、継承によって表示されたコントロールは一目瞭然です。
継承元で配置した
コントロール
実行してみよう
? 実行してみると、Form1には継承元のコントロールが表示されて
いることがわかります
? また、[閉じる]ボタンをクリックするとフォームが閉じられます。
? このように、継承元に配置したコントロールおよびコードは継承先
にも適用されます。
End

More Related Content

C# 継承フォームの作成