vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
NEU! sevCoolbar 3.0 - Professionelle Toolbars im modernen Design!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Visual-Basic Einsteiger
Re: Anfängerfrage Menüs 
Autor: clamsi
Datum: 15.07.10 00:37

Hi gobi,

wenn Du eine Art pseudo-MDI meinst, dann gibt es noch eine andere, in meinen Augen wesentlich bessere Variante. Ich nutze die schon seit einiger Zeit und bin damit voll zufrieden.

Du erstellst Deine drei Forms wie gehabt ganz normal im Designer. Form1 ist die MainForm, auf ihr plaziertst Du ein Panel (in diesem Fall Panel1). Form2 und Form3 sind die Forms, die in Form1 angezeigt werden sollen.

In die Ereignisse des Menüs gehört dann folgender Code:

Private Sub ShowForm2ToolStripMenuItem_Click(ByVal sender As System.Object, _
  ByVal e As System.EventArgs) Handles ShowForm2ToolStripMenuItem.Click
 
        Dim frm As New Form2
        frm.TopLevel = False
        Panel1.Controls.Add(frm)
        frm.Show()
        frm.BringToFront()
 
    End Sub
 
    Private Sub ShowForm3ToolStripMenuItem_Click(ByVal sender As System.Object, _
      ByVal e As System.EventArgs) Handles ShowForm3ToolStripMenuItem.Click
 
        Dim frm As New Form3
        frm.TopLevel = False
        Panel1.Controls.Add(frm)
        frm.Show()
        frm.BringToFront()
 
    End Sub
Der Vorteil:
Du kannst das mit beliebig vielen, im Designer erstellten, Forms machen. Umständliche PictureBoxen, TabControls etc. fallen flach. Jedes Form kann vollkommen eigenständig programmiert werden, das bläht den Code der MainForm nicht bis zur Unübersichtlichkeit auf.

Der Nachteil:
Eine modale Anzeige ala ShowDialog ist nicht möglich, da die Forms unter "TopLevel=False" kein Parent haben.
Es ist möglich mehrere Forms im Panel (auch ein Form mehrfach) anzuzeigen. Sollen sich einzelne Forms unereinander ausschließen, so muss das manuell programmiert werden. Dazu kann man aber hervorragend die Controls-Auflistung des Panels nutzen.
Du musst Dich über die Location-Eigenschaft (alternativ über Left und Top) selber darum kümmern, dass die Forms nicht aus dem Panel herausgeschoben werden können. Da das aber nur ganze vier Programmzeilen sind, sollte das wohl machbar sein.
Unter WinXP gibt es manchmal Probleme mit der SELECT-Funktion der Textboxen, wenn diese an eine Datenquelle gebunden sind. Unter Vista und WIN7 ist mir das allerdings nicht bekannt.

Ansonsten bleibt es Dir überlassen, wie Du die Forms anzeigen lässt. Maximiert nehmen sie maximal das gesamte Panel ein. Ich empfehle allerdings mit Menüleiste, sonst sind sie u.U. schlecht zu schließen.

Vielleicht ist das eine Alternative für Dich.


Gruß Nico
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Anfängerfrage Menüs1.495gobi02.07.10 09:43
Re: Anfängerfrage Menüs826djsky02.07.10 12:06
Re: Anfängerfrage Menüs767gobi02.07.10 12:30
Re: Anfängerfrage Menüs812sudave02.07.10 12:42
Re: Anfängerfrage Menüs830gobi02.07.10 13:02
Re: Anfängerfrage Menüs790djsky02.07.10 13:27
Re: Anfängerfrage Menüs783gobi02.07.10 14:02
Re: Anfängerfrage Menüs787gobi02.07.10 14:24
Re: Anfängerfrage Menüs779sudave02.07.10 22:22
Re: Anfängerfrage Menüs786djsky03.07.10 12:04
Re: Anfängerfrage Menüs758gobi05.07.10 08:06
Re: Anfängerfrage Menüs748clamsi15.07.10 00:37

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel