Ich wage es, meine VB.NET-Anwendung ein wenig besser zu machen, indem Sie einige der Formen nicht model.Wo kann ich das Verhalten der "X" -Schaltfläche oben rechts in einem WinForm steuern?
Ich denke, ich habe herausgefunden, wie dlg.Show() und dlg.Hide() statt dlg.ShowDialog() aufrufen. Ich habe eine Instanz meines modalen Dialogs in meinem Haupt-Bewerbungsformular:
Public theModelessDialog As New dlgModeless
Um den modalen Dialog ich
nennentheModelessDialog.Show()
und innerhalb der OK anwerfen und Schaltfläche Handler Abbrechen in dlgModeless
Ich habe
Private Sub OK_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK_Button.Click
Me.DialogResult = System.Windows.Forms.DialogResult.OK
Me.Hide()
End Sub
Private Sub Cancel_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Cancel_Button.Click
Me.DialogResult = System.Windows.Forms.DialogResult.Cancel
Me.Hide()
End Sub
und das scheint gut zu funktionieren.
Der "X" Knopf in der oberen rechten Ecke bringt mich jedoch. Wenn ich das Formular mit dieser Schaltfläche schließe, dann versuche, das Formular erneut zu öffnen, bekomme ich
ObjectDisposedException wurde nicht behandelt. Auf ein entsorgtes Objekt kann nicht zugegriffen werden.
Ich fühle mich wie die meisten der Weg dort bin, aber ich kann nicht herausfinden, wie eine der folgenden Funktionen ausführen:
- ausblenden, dass „X“ -Taste
- Fang das Ereignis also entsorge ich das Objekt nicht (behandle es einfach, wie ich auf Abbrechen klicke)
Irgendwelche Ideen?
Die Klasse dieses Dialogfelds lautet System.Windows.Forms.Form
.
Matthew, ich denke das ist es, wenn ich "Disposed" durch "IsDisposed" ersetze. Ich habe es versucht und es hat funktioniert. – John
Ah, erinnere mich an Namen, die Fluch von jedem Coder .... –