フォーム右上の[×]ボタン
投稿者 るしぇ  ()
投稿日時
2008/7/30 18:00:00
Closing イベントの引数 e は FormClosingEventArgs
Click イベントの引数 e は EventArgs
用意されている機能が違います。
>フォーム右上の[×]ボタンと同じ処理をするコントロール
Closing イベントにコードを書いておいて、
ボタンの Click イベントでは、Me.Close
とだけ書いておけば、Closing イベントが
実行されるのでは?
Click イベントの引数 e は EventArgs
用意されている機能が違います。
>フォーム右上の[×]ボタンと同じ処理をするコントロール
Closing イベントにコードを書いておいて、
ボタンの Click イベントでは、Me.Close
とだけ書いておけば、Closing イベントが
実行されるのでは?
投稿者 temp  ()
投稿日時
2008/7/31 03:07:00
http://homepage1.nifty.com/rucio/main/dotnet/shokyu/standard13.htm
ここの 5.プログラムを終了させる方法 の図がわかりやすいです。
るしぇさんの言うとおりMe.Closeでいいでしょう。
ここの 5.プログラムを終了させる方法 の図がわかりやすいです。
るしぇさんの言うとおりMe.Closeでいいでしょう。
投稿者 ロッキー  ()
投稿日時
2008/7/31 11:08:00
るしぇさん、tempさん
アドバイスありがとうございます。
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim ret As MsgBoxResult
If TextBox1.Modified Then
ret = MsgBox("テキストが変更されています。このまま終了しますか?", MsgBoxStyle.YesNo)
If ret = MsgBoxResult.Yes Then Me.Close()
End If
End Sub
上記のようにボタンを追加してみました。
Yesを押下するとまたMsgBoxが出てきて、もう一度
Yesを押下するとformが閉じる処理となります。
フォーム右上の[×]ボタンのコードを見にいって
いるみたいです。
このコードを見にいかないようにしたいのですが、
どのようにすればいいでしょうか?
すみませんが、よろしくお願いします。
アドバイスありがとうございます。
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim ret As MsgBoxResult
If TextBox1.Modified Then
ret = MsgBox("テキストが変更されています。このまま終了しますか?", MsgBoxStyle.YesNo)
If ret = MsgBoxResult.Yes Then Me.Close()
End If
End Sub
上記のようにボタンを追加してみました。
Yesを押下するとまたMsgBoxが出てきて、もう一度
Yesを押下するとformが閉じる処理となります。
フォーム右上の[×]ボタンのコードを見にいって
いるみたいです。
このコードを見にいかないようにしたいのですが、
どのようにすればいいでしょうか?
すみませんが、よろしくお願いします。
投稿者 temp  ()
投稿日時
2008/7/31 15:59:00
Me.CloseでFormClosingイベントに飛んで
終了チェックするからButton1_Clickの
> Dim ret As MsgBoxResult
> If TextBox1.Modified Then
> ret = MsgBox("テキストが変更されています。このまま終了しますか?", MsgBoxStyle.YesNo)
> If ret = MsgBoxResult.Yes Then
> End If
この部分は要らないのでは?
もし他の処理で要るなら
フラグを立てればいいと思う。
終了チェックするからButton1_Clickの
> Dim ret As MsgBoxResult
> If TextBox1.Modified Then
> ret = MsgBox("テキストが変更されています。このまま終了しますか?", MsgBoxStyle.YesNo)
> If ret = MsgBoxResult.Yes Then
> End If
この部分は要らないのでは?
もし他の処理で要るなら
フラグを立てればいいと思う。
投稿者 るしぇ  ()
投稿日時
2008/7/31 19:04:00
>>4
temp さんご紹介のこのサイトの記事にそのままのコードが載ってます。
>5.プログラムを終了させる方法
の部分を読むようにしてください。
temp さんご紹介のこのサイトの記事にそのままのコードが載ってます。
>5.プログラムを終了させる方法
の部分を読むようにしてください。
投稿者 ロッキー  ()
投稿日時
2008/8/1 06:45:00
るしぇさん・tempさんのアドバイス
通りにした所、解決しました!!
ありがとうございました。
通りにした所、解決しました!!
ありがとうございました。
フォーム右上の[×]ボタンのコードがあります。
Private Sub Form1_FormClosing(ByVal sender As System.Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles MyBase.FormClosing
Dim ret As MsgBoxResult
If TextBox1.Modified Then
ret = MsgBox("テキストが変更されています。このまま終了しますか?", _
MsgBoxStyle.YesNo, "終了")
If ret <> MsgBoxResult.Yes Then e.Cancel = True
End If
End Sub
このフォーム右上の[×]ボタンと同じ処理をするコントロールで[終了]ボタンを作りたいのですが、e.Cancelの部分でSystem.EventArgsのメンバではないとのエラーメッセージが出ます。
どのようにすればいいか教えていただけると助かります。
よろしくお願いします。