Forum: PC-Programmierung VB.NET 2008 Wie bekomm ich die Leiste bei MDIForms weg


von Gasssst (Gast)


Angehängte Dateien:

Lesenswert?

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
von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

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.

von Gasssst (Gast)


Lesenswert?

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.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Mir scheint, daß Du den Sinn von MDI noch nicht so ganz verinnerlicht 
hast.

von Karl H. (kbuchegg)


Lesenswert?

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

von Albrecht H. (alieninside)


Lesenswert?

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.

von Gasssst (Gast)


Lesenswert?

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.

von Gasssst (Gast)


Lesenswert?

@Karl heinz Buchegger

In diesem Fall sage ich aber dem Benutzer, wie die Form aussehen soll. 
Und der soll damit ja auch so arbeiten...

von Albrecht H. (alieninside)


Lesenswert?

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?

von Markus V. (valvestino)


Lesenswert?

@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

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Das hilft nur nicht bei MDI-Child-Windows. Die haben diese Elemente, 
und sie müssen sie auch haben.

von Randy N. (huskynet)


Lesenswert?

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.

von Albrecht H. (alieninside)


Lesenswert?

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

von Sederic (Gast)


Lesenswert?

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...

von Sederic (Gast)


Lesenswert?

Ok sry geht net. Aber vllt kannst du die Menüleiste entfernen und dafür 
was anderes nehmen?

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Sederic schrieb:
> Ich versteh Gassssst:

Nach drei Jahren ?!

Dieser Beitrag ist gesperrt und kann nicht beantwortet werden.