基本フォームと派生フォームでの設定内容統一方法について
- 題名: 基本フォームと派生フォームでの設定内容統一方法について
- 著者: poo
- 日時: 2011/04/12 18:37:09
- ID: 28449
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[1]: 基本フォームと派生フォームでの設定内容統一方法について
- 著者: shu
- 日時: 2011/04/12 22:29:38
- ID: 28450
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[2]: 基本フォームと派生フォームでの設定内容統一方法について
- 著者: poo
- 日時: 2011/04/13 10:20:28
- ID: 28456
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[3]: 基本フォームと派生フォームでの設定内容統一方法について
- 著者: るしぇ
- 日時: 2011/04/13 15:34:04
- ID: 28458
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[4]: 基本フォームと派生フォームでの設定内容統一方法について
- 著者: poo
- 日時: 2011/04/16 9:48:24
- ID: 28475
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[5]: 基本フォームと派生フォームでの設定内容統一方法について
- 著者: poo
- 日時: 2011/04/16 10:00:37
- ID: 28476
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[5]: 基本フォームと派生フォームでの設定内容統一方法について
- 著者: るしぇ
- 日時: 2011/04/22 9:39:02
- ID: 28490
- この記事の返信元:
- この記事への返信:
- ツリーを表示
分類:[.NET]
いつも参考にさせて頂いております。
複数フォームにて重複した共通部分があるため、以下サイトを参考に基本フォームを作り、継承機能を活用しようと思っております。
【参考サイト】
http://www.atmarkit.co.jp/fdotnet/dotnettips/324winbaseform/winbaseform.html
共通部分にはLabelやText等があるのですが、これは派生フォームからでも変更可能にしたいので、アクセシビリティをProtectedに変更しました。
これで派生フォームからも基本フォームの各コントロールにアクセス出来るようになったのですが、基本フォームと派生フォームで設定内容を統一させる方法が
分かりません。それぞれのフォームが参照する先は同じにしたいのですが、具体的には
どういった方法で実現すれば宜しいのでしょうか?
現在の状況は以下のコードのようになっており、基本フォームで変更した値は派生フォーム側でも反映されて表示されるのですが、派生フォームで変更した値を基本フォーム側で表示させる処理が分からなくて、つまずいている状態です。
根本的なところで間違っているかもしれませんが、宜しくお願い致します。
【呼び出し元】
private void cmdBase_Click(object sender, EventArgs e)
{
Kihon.Instance.Show();
}
private void cmdHasei_Click(object sender, EventArgs e)
{
Hasei hasei = new Hasei();
hasei.ShowDialog();
}
【基本フォーム】
// フォームのインスタンスを保持するフィールド
private static Kihon _instance;
public static Kihon Instance
{
get
{
// _instanceがnullまたは破棄されているときは、新しくインスタンスを作成する
if (_instance == null || _instance.IsDisposed)
_instance = new Kihon();
return _instance;
}
}
private string varValue;
public string TextValue
{
get
{
return varValue;
}
set
{
varValue = value;
}
}
//フォームを閉じずに隠すようにする
private void Kihon_FormClosing(object sender, FormClosingEventArgs e)
{
e.Cancel = true;
this.Hide();
}
private void txtTest_TextChanged(object sender, EventArgs e)
{
TextValue = txtTest.Text;
}
【派生フォーム】
// コンストラクタ
public Hasei()
{
InitializeComponent();
txtTest.Text = Kihon.Instance.TextValue;
}