- PR -

呼び出されたFORM

1
投稿者投稿内容
なび
ぬし
会議室デビュー日: 2007/08/27
投稿数: 273
投稿日時: 2008-08-29 11:00
こんにちは。

VB2005で、1つ教えて下さい。

FORM1からFORM2を表示させます。
Dim FORM2 As Object = New FORM2
FORM2.ShowDialog()
FORM2.Dispose()

というコードです。

そこでFORM2の
ボタン_Clickイベントで
入力内容をチェックしエラーならばメッセージボックスを表示して
再入力させたいのですが、OKをクリックするとFORM1に戻ってしまいます。


If チェック Then
MessageBox.Show("正しく入力して下さい", _
Me.Text, MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
Exit Sub
End If
とボタン_Clickイベントでコードを書いています。
FORM1に戻らないようにするにはどうするとよいのでしょうか?

よろしくお願いします。
なび
ぬし
会議室デビュー日: 2007/08/27
投稿数: 273
投稿日時: 2008-08-29 11:44
 こんにちは。

FORM2のFormClosingイベントに

If e.CloseReason <> CloseReason.UserClosing Then
e.Cancel = True
End If

を書いてみましたがどうでしょうか?

調べましたらe.CloseReason がNoneの不明の理由で閉じられます。


リング
会議室デビュー日: 2008/05/27
投稿数: 10
投稿日時: 2008-08-29 12:06
こんにちは。

画面を戻したくない時に、Form2.ボタン.DialogResultを
System.Windows.Forms.DialogResult.Noneにすれば良いの
ではないでしょうか?

たぶん、Form2.ボタン.DialogResultは、現在OKかYesに
なっているのでは?

あと余談ですが、
Dim FORM2 As Object = New FORM2は、何か理由があって
Objectで受け取ってるのでしょうか?理由がなければ、
Dim FORM2 As Form で良いのではないでしょうか?
なび
ぬし
会議室デビュー日: 2007/08/27
投稿数: 273
投稿日時: 2008-08-29 13:06
ありがとうございます。

DialogResultで、解決しました。

ご指導ありがとうございました。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2008-08-29 13:48
引用:

なびさんの書き込み (2008-08-29 11:00) より:

入力内容をチェックしエラーならばメッセージボックスを表示して
再入力させたいのですが、OKをクリックするとFORM1に戻ってしまいます。


根本的に問題を解決するために、なぜ "戻ってしまう" のかを知る必要があります。 そうしないと、

引用:

FORM2のFormClosingイベントに

If e.CloseReason <> CloseReason.UserClosing Then
e.Cancel = True
End If

を書いてみましたがどうでしょうか?


このように最適でない方法を選択してしまう可能性が高くなります。

あなたがそのように指示しない限り勝手に閉じられることはありません (ウィンドウの閉じるボタン等は除く)。 コードにその指示が含まれるか、あるいはその Button の DialogResult プロパティが指定されているからだと考えられます。 後者の場合 DialogResult プロパティが変更された後に再度 None に戻すというのは冗長です。

また今回のように入力チェックがある場合は検証漏れの温床になりますので、Button に DialogResult プロパティを設定しないでおきます (None のまま)。 入力チェックが問題なくすべて終わった 1 ルートのみで Form の DialogResult プロパティに設定するようにしましょう。

引用:

リングさんの書き込み (2008-08-29 12:06) より:

理由がなければ、Dim FORM2 As Form で良いのではないでしょうか?


理由がなければ Dim form2 As [その Form の正しい型] が望ましいです。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
1

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