我想知道如何強制我的主要gui更新對話框,如SaveFileDialog
框關閉。我試過Main.LostFocus
,Main.GotFocus
,,Main.MouseEnter
,Main.MouseLeave
,Main.MouseMove
,但無論我嘗試什麼功能,我都無法得到我期待的結果。如何在VB.Net中關閉對話框時強制執行操作?
單擊圖片時打開對話框。點擊時圖片發生變化,並在調用icon_new.MouseUp
時再次發生變化。問題是它在對話框關閉之前正常工作。在這一點上,圖片變回到鼠標懸停時的圖像。
這裏是圖片定期做什麼:
Private Sub icon_new_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles icon_new.MouseDown
icon_new.Image = My.Resources.NewMapClick
End Sub
Private Sub icon_new_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles icon_new.MouseUp
icon_new.Image = My.Resources.NewMapHover
End Sub
Private Sub icon_new_MouseEnter(ByVal sender As Object, ByVal e As System.EventArgs) Handles icon_new.MouseEnter
icon_new.Image = My.Resources.NewMapHover
End Sub
Private Sub icon_new_MouseLeave(ByVal sender As Object, ByVal e As System.EventArgs) Handles icon_new.MouseLeave
icon_new.Image = My.Resources.NewMapDefault
End Sub
這工作,直到對話框關閉,此時它的圖像變成NewMapHover
當它應該是NewMapDefault
,因爲鼠標是沒有內不再圖片的邊界。在諸如Main.LostFocus
,Main.GotFocus
或這樣的呼叫中,我有icon_new.image = My.Resources.NewMapDefault
,但即使此呼叫觸發,圖像也會以NewMapHover
結尾。我不知道爲什麼會發生這種情況,或者如何解決這個問題。任何幫助是極大的讚賞。
編輯:這是調用dialog_box
Private Sub icon_new_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles icon_new.Click
If file_created = True Then
save()
Else 'file_created = false'
SaveWindow.FileName = txt_name.Text
If SaveWindow.ShowDialog() = DialogResult.OK Then
file_path = SaveWindow.FileName
End If
file_created = True
End If
save()
new_file()
End Sub
click事件如果該文件尚未保存,然後打開一個對話框,提示用戶保存文件。我還玩弄了一個MsgBox()
,它有Yes,No和Cancel,提示,但爲了簡單起見,我拿出了它,因爲結果是一樣的,三分之一的時間SaveFile對話框會出現。
鼠標向下,向上或單擊時會打開對話框?你有鼠標點擊事件嗎?提供代碼。 – 2014-08-27 21:12:47
你試過把'icon_new.Image = My.Resources.NewMapDefault'作爲你點擊事件中的第一件事,在對話框之前? – Steve 2014-08-27 22:04:06
鼠標輸入/離開事件總的來說非常麻煩,當您使用對話框將焦點移開時,將該問題撥至11。 – 2014-08-27 22:18:42