Mehrere Ansichten in einer Form

  • VB.NET

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Mehrere Ansichten in einer Form

    Halli hallo,

    womit arbeite ich am besten, wenn ich mehrere Ansichten in einer Form darstellen möchte? (ähnlich TabControl)
    Ich habe bisher immer TabControl verwendet - die Tabs da oben "verschwenden" aber Platz, da in meinem Programm DIN-A4 Seiten vertikal angezeigt werden (weniger Platz nach oben = kleineres Bild[auch wenn man zoomen könnte]).

    Im Netz finde ich leider nur unbeantwortete Fragen:
    z.B. vbarchiv.net/forum/read.php?f=22&i=60337&t=60337


    Ich würde lieber links/rechts, wo noch Platz ist ein Menü machen, dass je nach Auswahl anderen Content anzeigt und Steuerelemente preisgibt (Bild drehen, vergrößern, verkleinern...) und gleichzeitig die anderen Steuerelemente ausblendet. Da jemand einen Tipp, womit ich das am besten mache?
    Nach dem Prinzip:
    Mach dir doch ein eigenes TabControl. Hier ein Beispiel wie das geht, hier ist die "TabAuswahl" auf der linken Seite: Füge diese Klasse zu deinem Projekt hinzu, einmal debuggen, danach ist das Teil in deiner ToolBox.

    VB.NET-Quellcode

    1. Public Class TabControlEx
    2. Inherits TabControl
    3. Private SF As New StringFormat With {.Alignment = StringAlignment.Center, .LineAlignment = StringAlignment.Center}
    4. Public Sub New()
    5. SetStyle(ControlStyles.AllPaintingInWmPaint Or ControlStyles.ResizeRedraw Or ControlStyles.UserPaint Or ControlStyles.DoubleBuffer, True)
    6. Me.Size = New Size(400, 200)
    7. Me.SizeMode = TabSizeMode.Fixed
    8. Me.ForeColor = Color.Gray
    9. Me.DrawMode = TabDrawMode.OwnerDrawFixed
    10. ItemSize = New Size(30, 100)
    11. Me.Alignment = TabAlignment.Left
    12. End Sub
    13. Protected Overrides Sub OnPaintBackground(pevent As PaintEventArgs)
    14. MyBase.OnPaintBackground(pevent)
    15. pevent.Graphics.FillRectangle(New SolidBrush(Color.FromArgb(255, 20, 20, 20)), Me.ClientRectangle)
    16. End Sub
    17. Protected Overrides Sub OnPaint(e As PaintEventArgs)
    18. MyBase.OnPaint(e)
    19. With e.Graphics
    20. For i = 0 To TabCount - 1
    21. Dim r As New Rectangle(New Point(GetTabRect(i).Location.X - 2, GetTabRect(i).Location.Y + 2), New Size(GetTabRect(i).Width + 3, GetTabRect(i).Height))
    22. If i = SelectedIndex Then
    23. .FillRectangle(New SolidBrush(Color.FromArgb(255, 60, 60, 60)), r)
    24. Else
    25. .FillRectangle(New SolidBrush(Color.FromArgb(255, 30, 30, 30)), r)
    26. End If
    27. .DrawString(TabPages(i).Text, Me.Font, New SolidBrush(Me.ForeColor), r, SF)
    28. Next
    29. End With
    30. End Sub
    31. End Class

    Rasalas schrieb:

    die Suchfunktion hat nen Schuss weg
    Du musst zunächst auf die Startseite vom Forum wechseln, um von da aus in allen Unterforen suchen zu können.
    Du hast in Deinem Thread gesucht und dort natürlich nur Deinen eigenen Beitrag gefunden.
    Gugst Du auch hier.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!