- PR -

フォームの閉じ方

投稿者投稿内容
ダッチ
大ベテラン
会議室デビュー日: 2005/10/31
投稿数: 113
投稿日時: 2007-01-18 23:09
ちょっと内容がそれますが、
引用:

じゃんぬねっとさんの書き込み (2007-01-18 19:14) より:

ShowDialog メソッドを使用しているのであれば、戻り値で判断できるのでは?


できましたっけ?
ShowDialog でフォームを開いている場合に[×]ボタンを選択すると DialogResult.Cancel が設定されますよね。
キャンセルボタンを選択したときももちろん DialogResult.Cancel を設定すると思います。これ以外になにか判断する材料とかあるんでしょうか?
ognac
ベテラン
会議室デビュー日: 2005/06/21
投稿数: 65
投稿日時: 2007-01-19 01:37
Ognacです。
どうしても、Modal先から戻すとすれば,例外を使う手もあります。
しかし,作法に反すると考えます。
やはり,先人の言われるように,対等レベルのFormを画面遷移として捉えて,終了に導くのが素直な作りでしょう。
今回の仕様では一時点で一画面が表示されればいいようなので,画面遷移図を考えてスッキリした流れにすることを推奨します
_________________
ognac@わんくま同盟
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2007-01-19 11:17
引用:

ダッチさんの書き込み (2007-01-18 23:09) より:

できましたっけ?
ShowDialog でフォームを開いている場合に[×]ボタンを選択すると DialogResult.Cancel が設定されますよね。
キャンセルボタンを選択したときももちろん DialogResult.Cancel を設定すると思います。これ以外になにか判断する材料とかあるんでしょうか?


キャンセル ボタンがない前提であれば、これで構わないでしょう。

ある前提ならば、Yes | No | Cancel で分け合うか、ShowDialog を Shadows して、
新たな DialogResult の値を追加した列挙体を使うとか、上策ではないですが色々あります。

ShowDialog メソッドは、あくまで例です。
自作の MyShowDialog メソッドでも良いでしょう。

そういうわけで、できる | できないの問題にはならないです。
何より、モーダルで表示している場合は、戻り値で判断するのが一般的でしょう。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
ダッチ
大ベテラン
会議室デビュー日: 2005/10/31
投稿数: 113
投稿日時: 2007-01-19 12:27
引用:

じゃんぬねっとさんの書き込み (2007-01-19 11:17) より:
引用:

ダッチさんの書き込み (2007-01-18 23:09) より:

できましたっけ?
ShowDialog でフォームを開いている場合に[×]ボタンを選択すると DialogResult.Cancel が設定されますよね。
キャンセルボタンを選択したときももちろん DialogResult.Cancel を設定すると思います。これ以外になにか判断する材料とかあるんでしょうか?


キャンセル ボタンがない前提であれば、これで構わないでしょう。

ある前提ならば、Yes | No | Cancel で分け合うか、ShowDialog を Shadows して、
新たな DialogResult の値を追加した列挙体を使うとか、上策ではないですが色々あります。

ShowDialog メソッドは、あくまで例です。
自作の MyShowDialog メソッドでも良いでしょう。

そういうわけで、できる | できないの問題にはならないです。
何より、モーダルで表示している場合は、戻り値で判断するのが一般的でしょう。



回答ありがとうございます。

ShowDialog メソッドにこだわった考えをしていました。
その概念を捨てれば全て納得できました。

新たな DialogResult の値を追加した列挙体を使うというのは参考になりました。
独自のプロパティを設けて処理をするよりずっとわかりやすそうですね。

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