PDA

Vollständige Version anzeigen : MDI Container - Chield maximiert ohne Controlbox


DbSam2003
20.08.2003, 08:51
Hallo zusammen,

ich erstelle eine MDI Anwendung.
Im MDI Container gibt es das MainMenu und die Toolbar.
Die Chieldfenste sollen maximiert geöffnet werden und nicht im Container 'herumtanzen' - Anforderung.

Leider werden die Controlbox und das Systemmenü der Chields im MainMenu des MDI Containers angezeigt. Sogar der Platzhalter des FensterIcons wird angezeigt. Ich habe mich schon nach allen Seiten verrenkt - bekomme es aber nicht weg. :confused:
Sowas ging in VB6 ohne Probleme.

Oder was mache ich falsch?

Danke und Gruß
Carsten

DbSam2003
20.08.2003, 09:35
So geht das nicht:
Hier wird das Systemmenü und die Controlbox der oberen
Formularleiste im MainMenu angezeigt.

Private Sub Show_FrmAnwender()
Dim frm As New frmAnwender

frm.MdiParent = Me
frm.Anchor = AnchorStyles.Left
frm.Anchor = AnchorStyles.Top
frm.Dock = DockStyle.Fill
frm.Show()

End Sub

Das geht:
Und so wird das FChieldformular maximiert, ohne Controlbox und
Icon im MainMenu des MDI Containers anzuzeigen.

Private Sub Show_FrmAnwender()
Dim frm As New frmAnwender

frm.Show()
frm.MdiParent = Me
frm.Anchor = AnchorStyles.Left
frm.Anchor = AnchorStyles.Top
frm.Dock = DockStyle.Fill

End Sub

Man muß erst öffnen(Show()) und dann die Eigenschaften einstellen.
Ich dachte bisher - erst festlegen - dann anzeigen.
OK, dann ist es in .NET eben anders ....

Gruß Carsten

Serge
20.08.2003, 11:00
probier mal statt

frm.mdiparent = me

frm.mdiparent = activeform

DbSam2003
20.08.2003, 20:11
Hallo Serge,

Dein Vorschlag funktioniert leider so nicht.
Es funktioniert wirklich nur (nach meinen vielen erfolglosen Versuchen) der Codeschnipsel siehe weiter unten.

Nochmal zu den Voraussetzungen:
- Ein Form dessen IsMdiContainer-Eigenschaft auf True steht
Dieses Form hat ein MainMenu und eine Toolbar, die für die ganze Appl. gelten sollen.
- Die Childfenster können u.a. über das MainMenu geöffnet werden.
- Anforderung ist, daß diese die Fläche voll ausfüllen sollen - also im Container maximiert geöffnet werden - und keine Controlbox und SystemMenü haben - also ohne obere Fensterleiste.

In VB6 im Handumdrehen fertig, aber hier bin ich verzweifelt ...
Schon das MainMenu an sich paßt eigentlich nicht zu .Net

In .Net malte mir das ChieldForm immer sein SystemMenü mit IconPlatzhalter und die Controlbox in's MainMenu rein .....
Obwohl ich alles mögliche ausgeschalten habe ....

Sobald 'frm.WindowState = FormWindowState.Maximized' in's Spiel kommt, sind die hier unerwünschten Teile der oberen Formularleiste im Mainmenu zu sehen - obwohl per Click oder Code ausgeschalten.

Mit diesem Code funktioniert es aber wie gewünscht:

Dim frm As New frmAnwender

frm.FormBorderStyle = FormBorderStyle.None
frm.MdiParent = Me 'oder ActiveForm - egal
frm.Anchor = AnchorStyles.Left
frm.Anchor = AnchorStyles.Top

frm.Show() 'Show muß!!! vor DockStyle.Fill kommen

frm.Dock = DockStyle.Fill


Gruß Carsten