- PR -

コードを返すWindowsフォームをオブジェクト指向で作成するには

1
投稿者投稿内容
ボビン
常連さん
会議室デビュー日: 2007/02/05
投稿数: 45
投稿日時: 2007-02-20 14:32
こんにちは、いつもお世話になっています。

件名の通り、コードを返すWindowsフォームを今設計中です。
オブジェクト指向で作成するには経験が浅く、考え方がとぼしいためご質問させてください。

作りたい画面は、例えば、入力支援ボタンを押すと子画面が開き、
テーブルから読み込んだデータをスプレッド等で一覧表示する。

例)このようなデータが表示されたとして(ズレていて申し訳ありません。)、
ヘッダ行|Code|内容|・・・
1行目 |100 |aa|・・・
2行目 |200 |bb|・・・
3行目 |300 |cc|・・・

ユーザが2行目を選択し、確定ボタンを押下で、子画面を閉じ
コード「200」を元画面へ返すような入力支援画面です。

データを表示する検索キーはコンストラクタ、プロパティで渡して作ろうと思います。

疑問点は、選択されたコード「200」を返す方法です。
選択した時点では「200」は保持していますが、子画面を閉じた時点で
保持している変数が一緒に破棄されるので、「Shared」をつけて宣言した
フィールドに渡して、それを元画面で参照する、くらいのオブジェクト指向ではない案しか
浮かばないのです。

参考になるようなリンクでもけっこうですので、よろしければお力をお貸しください。
よろしくお願いします。
VB2005、SQLServerで開発しています。

じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2007-02-20 15:53
引用:

ボビンさんの書き込み (2007-02-20 14:32) より:

疑問点は、選択されたコード「200」を返す方法です。
選択した時点では「200」は保持していますが、子画面を閉じた時点で
保持している変数が一緒に破棄されるので、「Shared」をつけて宣言した
フィールドに渡して、それを元画面で参照する、くらいのオブジェクト指向ではない案しか浮かばないのです。


オブジェクト指向というよりは、構造化レベル寄りのお話ではないかと見受けられます。
(Form のインスタンスを利用するというところは、OOP 特有の概念になりますが)

その Form を ShowDialog で開き、戻り値の DialogResult で OK かどうかを判断して、
OK であれば、その Form のインスタンスから結果が格納されたプロパティを取得する。
または、自作の ShowDialog で結果を返すなど、いくつか方法はあります。

引用:

子画面を閉じた時点で保持している変数が一緒に破棄されるので、


というのが、選べる道を自ら閉ざしていることになっていると思いますが。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
ボビン
常連さん
会議室デビュー日: 2007/02/05
投稿数: 45
投稿日時: 2007-02-20 16:36
じゃんぬねっとさん、いつもお返事ありがとうございます。

教えていただいたDialogResult プロパティを調べて使いました。
FormClosingイベント内でOKをセットし、やりたいことが実現できました!

フォームを閉じたあとは、disposeしているわけでもないのに
参照できないものと思いこんでいました。

これからは、柔軟な考えで設計することを心がけます。
どうもありがとうございました。
1

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