Dies ist ein sehr triviales Problem, aber ich kann keinen Weg finden, es zu lösen. Es nervt mich, weil ich glaube, ich sollte die Antwort darauf wissen, aber ich suche entweder nach den falschen Begriffen oder nach den falschen Methoden und Eigenschaften.Wie kann ich den Speicherort eines Dialogfelds steuern, wenn ShowDialog zum Anzeigen verwendet wird?
Ich habe einen Konfigurationsdialog, der von zwei Orten aufgerufen wird.
Die erste ist von der Schaltfläche auf dem Formular, die ordnungsgemäß funktioniert - wie Sie es erwarten würden.
Die zweite ist aus einem Kontextmenü auf der NotifyIcon in der Taskleiste, aber hier erscheint es oben links auf dem Bildschirm. Im Idealfall möchte ich, dass es auf dem Hauptbildschirm oder in der Nähe des Systembereichs angezeigt wird.
Ich habe versucht, die
Location
Einstellung, aber dies scheint außer Kraft gesetzt zu werden, wenndialog.ShowDialog()
genannt wird.Ich habe versucht, mit der
dialog.ShowDialog(IWin32Window)
Überladung, aber das schien nicht wie ichnull
als Fenstergriff übergeben.Ich habe versucht mit
dialog.Show()
statt, aber (und das ist, wo ich falsch gehen könnte) Einstellung des Standortes scheint keine konsistenten Ergebnisse zu geben.Ich habe sogar versucht, die
dialog.Parent
Eigenschaft zu setzen - die natürlich eine Ausnahme ausgelöst.
Ich weiß nur, dass ich gehe zu erkennen, dass die Antwort offensichtlich ist, wenn ich (hoffentlich) ein paar Antworten sehen, aber im Moment bin ich ganz fest.
Danke für die Antworten - ich vermutete, dass es offensichtlich war, aber wie immer hatte ich mich selbst dabei erwischt, auf den falschen Weg zu schauen. Noch nerviger ist, dass ich diese Eigenschaft auch vom Designer verwendet habe.
Hatte das gleiche Problem. Für mich hat es funktioniert, um Location während Load-Ereignis festzulegen – TomB