- PR -

接続の共有方法(Windows Form)

1
投稿者投稿内容
KS
会議室デビュー日: 2005/05/16
投稿数: 1
投稿日時: 2005-05-16 13:24
C#にてはじめて開発しています。

起動フォームにてコネクトしたものを複数フォームで
うまく共有する方法はないでしょうか?
よろしくお願いします。

-大まかな流れ-
(1)MainForm(起動Form)にてサーバーへコネクトする
(2)SubFormを表示
(3)受信ボタン クリック SubForm画面非活性
(4)SubFormでデータを非同期受信する
(5)受信完了後 活性
(6)終了


(1)MainFormにてサーバーへコネクトする
(2)SubFormを表示
(3)受信ボタン クリック SubForm画面非活性
(4)SubFormでデータを非同期受信する
(5)受信完了後 活性
--MainFormにてEnd_Reciveが発生するため
SubFormの活性化がうまく出来ない。

じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2005-05-16 13:46
こんにちは、じゃんぬ です。

引用:

起動フォームにてコネクトしたもの


って、DB のコネクションのことですか?

だとすると、それらの機能をあるクラスにまとめて、
シングルトンというデザインパターンを適用してみるとか。



_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
きくちゃん
ぬし
会議室デビュー日: 2003/08/01
投稿数: 854
お住まい・勤務地: 都内某所
投稿日時: 2005-05-16 17:28
KSさん、こんばんは。

引用:

--MainFormにてEnd_Reciveが発生するため
SubFormの活性化がうまく出来ない。


もしかしてこういう↓感じ…?

コード:

// サブフォーム
public class SubForm : System.Windows.Forms.Form
{
public event EventHandler Button1Clicked;

private void button1_Click(object sender, System.EventArgs e)
{
this.Button1Clicked(this, EventArgs.Empty);
}
}

// メインフォーム
public class MainForm : System.Windows.Forms.Form
{
private SubForm subform;

private void button1_Click(object sender, System.EventArgs e)
{
subform = new SubForm();
subform.Button1Clicked += new EventHandler(this.subform_Button1Clicked);
subform.Show();
// メインフォーム非活性化(必要なら)
}

private void subform_Button1Clicked(object sender, EventArgs e)
{
// サブフォーム非活性化
subform.Enabled = false;
// データ非同期受信開始
}

private void End_Recive(IAsyncResult ret)
{
// データ非同期受信終了
// サブフォーム活性化
subform.Enabled = true;
}
}




[ メッセージ編集済み 編集者: きくちゃん 編集日時 2005-05-16 17:34 ]
1

スキルアップ/キャリアアップ(JOB@IT)