Weiss einer von euch, wie ich die im anhang markierte Leiste wegbekommen kann? Ich habe alles versucht, was in meiner Macht stand. Bin aber ratlos. Das ist eine MDI-Form mit darin maximierter Childform. Ich habe bereits versucht in der Childform alles auszublenden (Sowohl über FormBorderStyle auf None, als auch manuell alle Boxes und die Leiste auf None) Viiiielen Dank schon mal in vorhinein, Euer Anonym
:
Gesperrt durch User
Die gehört da hin, wie sonst sollst Du eine Chance haben, Dein maximiertes Child-Fenster wieder zu de-maximieren? Wenn das nicht gewünscht ist, ist die Verwendung von MDI ein Designfehler.
Ich will die ja gar nicht demaximieren (wiederherstellen), schließen, minimieren oder sonstwas. Ich habe 6 verschiedene ChildForms, welche in der MDIform allesamt maximiert geladen werden. So weit so gut. In meinem Programm aktiviere ich die Childforms nach Bedarf manuell und hole sie so in den Vordergrund. Ich will nur die scheiß Leiste weghaben. Wenn ich eine einzelne Windows-Form (ohne MDI) habe kann ich den ganzen Käse ja auch ausblenden. Bis auf die nackte Arbeitsfläche.
Mir scheint, daß Du den Sinn von MDI noch nicht so ganz verinnerlicht hast.
Gasssst schrieb: > Ich will die ja gar nicht demaximieren (wiederherstellen), schließen, > minimieren oder sonstwas. > Ich habe 6 verschiedene ChildForms, welche in der MDIform allesamt > maximiert geladen werden. So weit so gut. In meinem Programm aktiviere > ich die Childforms nach Bedarf manuell und hole sie so in den > Vordergrund. Und was, wenn ich die 6 Childforms alle nebeneinander sehen will? Ich als Benutzer sag wo's lang geht, nicht das Programm
Gasssst schrieb: > Weiss einer von euch, wie ich die im anhang markierte Leiste wegbekommen > kann? > ... Im Childfenster "Text"-Property leer lassen ("") und "ControlBox"-Property auf "False" setzen.
Leider auch nicht geklappt. Naja auch egal. Werde ich halt umdenken müssen. Wollte ich zwar nicht, aber was solls... Trotzdem vielen Dank an euch, das ihr euch die Zeit genommen habt um mir zu helfen.
@Karl heinz Buchegger In diesem Fall sage ich aber dem Benutzer, wie die Form aussehen soll. Und der soll damit ja auch so arbeiten...
Gasssst schrieb: > Leider auch nicht geklappt. Naja auch egal. Werde ich halt umdenken > müssen. Wollte ich zwar nicht, aber was solls... > Also bei mir funktioniert das so. Bist du sicher, dass du wirklich VB.NET 2008 verwendest?
@Gasssst: Erstmal muß ich Karl heinz Buchegger zustimmen: Du verwendest ja auch keinen Hammer um eine Schraube in ein Brett zu drehen, oder? Aber sei es drum, da wäre dann noch die MSDN-(Online)-Hilfe mit folgendem Beispiel: The following code example uses the ControlBox, FormBorderStyle, MaximizeBox, MinimizeBox, and StartPosition properties to create a form that does not have any border or caption box. The form created in this example could be used to create a splash screen for an application. The example requires that the example's method is defined in a form class and called when the form is being initialized.
1 | Public Sub CreateMyBorderlesWindow() |
2 | FormBorderStyle = FormBorderStyle.None |
3 | MaximizeBox = False |
4 | MinimizeBox = False |
5 | StartPosition = FormStartPosition.CenterScreen |
6 | ' Remove the control box so the form will only display client area. |
7 | ControlBox = False |
8 | End Sub 'CreateMyBorderlesWindow |
Zu finden unter http://msdn.microsoft.com/de-de/library/system.windows.forms.form.controlbox.aspx Gruß Markus
Das hilft nur nicht bei MDI-Child-Windows. Die haben diese Elemente, und sie müssen sie auch haben.
Wie bereits gesagt wurde, ist die Verwendung von MDI für dein Vorhaben wohl ungeeignet. Eine gute Lösung wäre z.B., anstatt der MDI-Childforms UserControls zu erstellen. Im Hauptfenster könntest du dann ein Panel als Platzhalter aufziehen und in dieses Panel mit panel.Controls.Add deine UserControls reinladen (Eigenschaft Dock sollte auf Fill stehen) sowie per .Remove wieder entfernen.
Rufus t. Firefly schrieb: > Das hilft nur nicht bei MDI-Child-Windows. Die haben diese Elemente, > und sie müssen sie auch haben. Das kann schon alles sein, funktionieren tut das aber trotzdem (VB2008):
1 | Public Class Form1 |
2 | |
3 | Dim MyChildForm As New Form |
4 | Dim MyButton As New Button |
5 | |
6 | Dim FShowControls As Boolean = 0 |
7 | |
8 | Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load |
9 | |
10 | Me.IsMdiContainer = True |
11 | |
12 | MyChildForm.MdiParent = Me |
13 | MyChildForm.Show() |
14 | MyChildForm.Text = "" |
15 | MyChildForm.ControlBox = False |
16 | |
17 | MyChildForm.Controls.Add(MyButton) |
18 | MyButton.Location = New Point(100, 100) |
19 | MyButton.Text = "Switch" |
20 | AddHandler MyButton.Click, AddressOf MyButton_Click |
21 | |
22 | End Sub |
23 | |
24 | Private Sub MyButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) |
25 | FShowControls = Not (FShowControls) |
26 | |
27 | If FShowControls Then |
28 | MyChildForm.Text = "MyChildForm2" |
29 | MyChildForm.ControlBox = True |
30 | Else |
31 | MyChildForm.Text = "" |
32 | MyChildForm.ControlBox = False |
33 | End If |
34 | |
35 | End Sub |
36 | |
37 | End Class |
Ich versteh Gassssst: Wie sonst will man verschiedene Fenster in einem anzeigen. Außerdem ist immer der Programmierer der Boss, net der Benutzer!!! Und warum Gasssst des so haben will is doch sowas von Wurscht, er will das halt so haben! Mein Vorschlag wäre, dass due die Childs bei FormBorderStyle auf None setzst. Das müsste gehn...
Ok sry geht net. Aber vllt kannst du die Menüleiste entfernen und dafür was anderes nehmen?