www.mikrocontroller.net

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


Autor: Gasssst (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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 Moderator
Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Gasssst (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

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

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Albrecht H. (alieninside)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Gasssst (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Gasssst (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: Albrecht H. (alieninside)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Markus Volz (valvestino)
Datum:

Bewertung
0 lesenswert
nicht 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.
Public Sub CreateMyBorderlesWindow()
    FormBorderStyle = FormBorderStyle.None
    MaximizeBox = False
    MinimizeBox = False
    StartPosition = FormStartPosition.CenterScreen
    ' Remove the control box so the form will only display client area.
    ControlBox = False
End Sub 'CreateMyBorderlesWindow
Zu finden unter 
http://msdn.microsoft.com/de-de/library/system.win...

Gruß
Markus

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

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

Autor: Randy N. (huskynet)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Albrecht H. (alieninside)
Datum:

Bewertung
0 lesenswert
nicht 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):


Public Class Form1

    Dim MyChildForm As New Form
    Dim MyButton As New Button

    Dim FShowControls As Boolean = 0

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        Me.IsMdiContainer = True

        MyChildForm.MdiParent = Me
        MyChildForm.Show()
        MyChildForm.Text = ""
        MyChildForm.ControlBox = False

        MyChildForm.Controls.Add(MyButton)
        MyButton.Location = New Point(100, 100)
        MyButton.Text = "Switch"
        AddHandler MyButton.Click, AddressOf MyButton_Click

    End Sub

    Private Sub MyButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
        FShowControls = Not (FShowControls)

        If FShowControls Then
            MyChildForm.Text = "MyChildForm2"
            MyChildForm.ControlBox = True
        Else
            MyChildForm.Text = ""
            MyChildForm.ControlBox = False
        End If

    End Sub

End Class

Autor: Sederic (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: Sederic (Gast)
Datum:

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

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sederic schrieb:
> Ich versteh Gassssst:

Nach drei Jahren ?!

Dieser Beitrag ist gesperrt und kann nicht beantwortet werden.