タイトル : DialogResult設定時でも勝手にcloseしない方法 投稿日 : 2005/04/27(Wed) 10:37 投稿者 : はせどん
[OSのVer]:Windows XP [VBのVer]:VB.NET 2003 サブ画面でDialogResult.OKを使用してもサブプロシージャー内でキャンセルする方法を 教えて下さい。 (例) Private Sub cmdOk_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdOk.Click If MessageBox.Show("Closeしますか?", "Which", MessageBoxButton s.OKCancel, MessageBoxIcon.Exclamation) = DialogResult.OK Then Me.Close() Else ' Closeしたくないのに勝手にClose処理がされてしまう。 End If End Sub HPで探すと下記のような記事があるのですが。。。 <hhttp://www.microsoft.com/japan/msdn/vbasic/migration/tips/dialogbox.aspx> 、「OK」ボタンに[OK]という役割を、「キャンセル」ボタンに[Cancel]という役割を設定します 。 上記のコード(リスト2)を実装すると、Close() メソッドを呼び出していないのに、Form2 の「OK」 または「キャンセル」ボタンが押されると、Form2 が閉じてしまいます。これは、DialogResult プロ パティの仕様によるものです。そのため、DialogResult プロパティを使用する場合、DialogResult プ ロパティを設定したボタンは Close() メソッドを呼ばなくても閉じてしまうことに注意してくださ い。 |