Autor Beitrag
MarcinD
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 34

Windows 7 Ultimate (64Bit)
VS2008 Prof. - C#
BeitragVerfasst: Fr 21.01.11 23:05 
Hallo,

ich habe ein Problem mit der Steuerung meiner Formulare. Ich habe ein MainForm, in dem eine DataGridView angezeigt wird. Dort ist eine Symbolleiste, wo man hinzufügen und Bearbeiten kann. Nach dem Klicken der Schaltflächen öffne ich ein Formular mit
ausblenden C#-Quelltext
1:
myForm.ShowDialog();					


Das Programm wartet dann, bis das aufgerufene Formular geschlossen wird, weil der DialogResult entscheidet, ob die MainForm und das DataGridView aktualisiert werden soll.

Nun habe ich aber das Problem, dass wenn dieses aufgerufene Formular aktiv ist, es immer vorne ist. d.h. wenn ich Outlook aufmache, dann habe ich dieses Formular vorne. Wie kann ich es einstellen, dass es nur vor dem Mainform ist d.h. Mainform kann nicht bearbeitet werden, aber andere Programme wie z.B. Outlook können davor komplett gesehen und bearbeiten werden.

Wie kann ich das Lösen? Entweder das MyForm ist nicht ganz vorne, oder gibt es einen anderen Weg, wie mein MainForm erfährt, dass MyForm korrekt beendet wurde bzw. abgebrochen wurde.

Danke und Gruß

Martin
MarcinD Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 34

Windows 7 Ultimate (64Bit)
VS2008 Prof. - C#
BeitragVerfasst: Fr 21.01.11 23:46 
Super. Man sollte nicht immer alles glauben, was man liest. Es liegt tatsächlich an der TopMost Eigenschaft. Aber ich verstehe nicht, wieso die bei mir true war. In der Msdn Library steht folgendes:
Zitat:

Eigenschaftenwert

true , um das Formular als oberstes Formular anzuzeigen, andernfalls false . Der Standardwert ist false .

Ich bin davon ausgegangen, dass das bei mir auch der Fall ist. Deshalb war ich auch der Meinung, dass TopMost mir bei meinem Problem nicht helfen kann. Habe auch das komplette Projekt durchsucht. Nirgendwo wird TopMost auf True gesetzt. Komisch.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19335
Erhaltene Danke: 1751

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Sa 22.01.11 06:35 
Auch nicht direkt in den Eigenschaften des Formulars? Bei mir ist es jedenfalls false, wenn ich es nicht ändere. :nixweiss:
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4803
Erhaltene Danke: 1060

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Sa 22.01.11 10:18 
Hallo,

es hat jetzt nicht direkt etwas mit deinem Problem zu tun, aber du solltest möglichst immer selber den Owner des Dialogs setzen, d.h.
ausblenden C#-Quelltext
1:
myForm.ShowDialog(this);					

wobei 'this' dann die aufrufende Form ist.

(ohne diese Angabe wird immer das derzeit aktive Fenster als Owner genommen, und dabei kann es - je nach Aufruf - zu komischen Effekten kommen, insbesondere wenn andere Fenster im Spiel sind...)