vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevAniGif - als kostenlose Vollversion auf unserer vb@rchiv CD Vol.5  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

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

VB.NET - Ein- und Umsteiger
Bildschirm "vierteilen" 
Autor: stefanbla80
Datum: 15.02.18 14:44

Hallo zusammen,

ich würde gerne einen „OneScreen“ erstellen.

Also auf einem Bildschirm öffne ich ein Formular mit z. B. vier WebControls.
Diese Controls würde ich gerne „exakt“ aufteilen – also den Bildschirm in vier Segmente unterteilen.

Habt Ihr hier eine Idee?

Grüße
Stefan
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Bildschirm "vierteilen" 
Autor: Manfred X
Datum: 15.02.18 15:31

Hallo!

Idee? Nein!
Code-Beispiel? Ja!

Public Class frmQuad
 
    Private scHorizontal As New SplitContainer With
        {.Parent = Me, .Orientation = Orientation.Horizontal,
        .Dock = DockStyle.Fill, .SplitterWidth = 4}
 
    Private scVerticalLeft As New SplitContainer With
        {.Parent = scHorizontal.Panel1, .Orientation = Orientation.Vertical,
        .Dock = DockStyle.Fill, .SplitterWidth = 4}
 
    Private scVerticalRight As New SplitContainer With
        {.Parent = scHorizontal.Panel2, .Orientation = Orientation.Vertical,
        .Dock = DockStyle.Fill, .SplitterWidth = 4}
 
    Dim bl As New List(Of Button)
 
    Private Sub frmQuad_Load(sender As Object, e As EventArgs) Handles _
      MyBase.Load
 
        setsplitterhalfwidth(scHorizontal)
        setsplitterhalfwidth(scVerticalLeft)
        setsplitterhalfwidth(scVerticalRight)
 
        With bl
            .Add(New Button With
               {.Parent = scVerticalLeft.Panel1, .Dock = DockStyle.Fill, _
                .Text = "B1"})
            .Add(New Button With
               {.Parent = scVerticalLeft.Panel2, .Dock = DockStyle.Fill, 
                .Text = "B2"})
            .Add(New Button With
               {.Parent = scVerticalRight.Panel1, .Dock = DockStyle.Fill, 
                .Text = "B3"})
            .Add(New Button With
               {.Parent = scVerticalRight.Panel2, .Dock = DockStyle.Fill, 
                .Text = "B4"})
        End With
 
        For i As Integer = 0 To 3
            AddHandler bl(i).Click, AddressOf bl_click
        Next
    End Sub
 
    Private Sub bl_click(ByVal sender As Object, e As EventArgs)
        MsgBox(DirectCast(sender, Button).Text)
    End Sub
 
    Public Sub setsplitterhalfwidth(sc As SplitContainer)
        sc.SplitterDistance = sc.Width \ 2
    End Sub
End Class
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Bildschirm "vierteilen" 
Autor: stefanbla80
Datum: 15.02.18 20:54

Hallo Manfred,

danke für Deinen Code.

Aber: Geht das nicht auch so?

    Private Sub frmQuad_Load(ByVal sender As Object, ByVal e As EventArgs) _
      Handles MyBase.Load
 
        Panel1.Left = 0
        Panel2.Left = Me.Width / 2
        Panel3.Left = 0
        Panel4.Left = Me.Width / 2
 
        Panel1.Top = 0
        Panel2.Top = 0
        Panel3.Top = Me.Height / 2
        Panel4.Top = Me.Height / 2
 
        Panel1.Width = Me.Width / 2 - 10
        Panel2.Width = Me.Width / 2 - 10
        Panel3.Width = Me.Width / 2 - 10
        Panel4.Width = Me.Width / 2 - 10
 
        Panel1.Height = Me.Height / 2
        Panel2.Height = Me.Height / 2
        Panel3.Height = Me.Height / 2
        Panel4.Height = Me.Height / 2
 
        Me.WebBrowser1.Navigate("www.google.de")
        Me.WebBrowser2.Navigate("www.google.de")
        Me.WebBrowser3.Navigate("www.google.de")
        Me.WebBrowser4.Navigate("www.google.de")
 
        Me.WebBrowser1.Refresh()
 
        WebBrowser1.ScriptErrorsSuppressed = True
 
    End Sub
 
    Private Sub Panel1_MouseMove(ByVal sender As Object, ByVal e As _
      System.Windows.Forms.MouseEventArgs) Handles Panel1.MouseMove
        MsgBox("Test")
    End Sub
Angenommen ich suche einen MouseMove Befehl .. geht das beim WebBrowser?
Ich will den WebBrowser maximieren, auf dem ich gerade mit der Maus bin ...

Grüße
Stefan
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Bildschirm "vierteilen" 
Autor: Manfred X
Datum: 15.02.18 22:14

Naja!

Wenn Du die Panels per Code positionieren willst (Locate, Size),
dann mußt Du das im Resize/End-Ereignis der Form erledigen.

Wenn Du beim Überfahren eines Panels mit der Maus dieses Panel
sofort maximierst, wie willst Du an die anderen Panels wieder
herankommen?
Das solltest Du besser mit einem MausClick erledigen.
Irgend so was ....
Public Class FrmQuad
 
    Private scParent As New SplitContainer With
        {.Parent = Me, .Orientation = Orientation.Vertical,
        .Dock = DockStyle.Fill, .SplitterWidth = 4}
 
    Private btnSelect As New List(Of Button)
 
    Private WithEvents scHorizontal As New SplitContainer With
        {.Parent = scParent.Panel2, .Orientation = Orientation.Horizontal,
        .Dock = DockStyle.Fill, .SplitterWidth = 4}
 
    Private WithEvents scVerticaltop As New SplitContainer With
        {.Parent = scHorizontal.Panel1, .Orientation = Orientation.Vertical,
        .Dock = DockStyle.Fill, .SplitterWidth = 4}
 
    Private WithEvents scVerticalBottom As New SplitContainer With
        {.Parent = scHorizontal.Panel2, .Orientation = Orientation.Vertical,
        .Dock = DockStyle.Fill, .SplitterWidth = 4}
 
    Dim bl As New List(Of WebBrowser)
 
 
    Private Sub FrmQuad_Load(sender As Object, _
        e As EventArgs) Handles MyBase.Load
 
        Me.KeyPreview = True
        scParent.SplitterDistance = 20
        scParent.IsSplitterFixed = True
 
        setsplitterhalfwidth(scHorizontal)
        setsplitterhalfwidth(scVerticaltop)
        setsplitterhalfwidth(scVerticalBottom)
 
        With btnSelect
            .Add(New Button With _
               {.Parent = scParent.Panel1, .Width = 10, .Height = 10})
            .Add(New Button With _
               {.Parent = scParent.Panel1, .Width = 10, _
                .Height = 10, .Left = 11})
            .Add(New Button With _
               {.Parent = scParent.Panel1, .Width = 10, _
                 .Height = 10, .Top = 11})
            .Add(New Button With
               {.Parent = scParent.Panel1, .Width = 10, .Height = 10, _
                .Left = 11, .Top = 11})
            .Add(New Button With _
               {.Parent = scParent.Panel1, .Width = 20, .Height = 20, _
                .Top = 21})
 
        End With
 
        For i As Integer = 0 To 4
            AddHandler btnSelect(i).Click, AddressOf btnSelect_Click
        Next i
 
 
        With bl
            .Add(New WebBrowser With
               {.Parent = scVerticaltop.Panel1, .Dock = DockStyle.Fill})
            .Add(New WebBrowser With
                   {.Parent = scVerticaltop.Panel2, .Dock = DockStyle.Fill})
            .Add(New WebBrowser With
                   {.Parent = scVerticalBottom.Panel1, .Dock = DockStyle.Fill})
            .Add(New WebBrowser With
                   {.Parent = scVerticalBottom.Panel2, .Dock = DockStyle.Fill})
        End With
 
        bl(0).Navigate("http://www.bing.com")
        bl(1).Navigate("http://www.google.com")
        bl(2).Navigate("https://www.duckduckgo.com")
        bl(3).Navigate("http://www.yahoo.com")
 
 
    End Sub
 
 
    Private Sub btnSelect_Click(sender As Object, e As EventArgs)
 
        Dim t As Integer = DirectCast(sender, Button).Top
        Dim l As Integer = DirectCast(sender, Button).Left
 
        If t > 20 Then
            scHorizontal.Panel1Collapsed = False
            scHorizontal.Panel2Collapsed = False
            scVerticalBottom.Panel1Collapsed = False
            scVerticalBottom.Panel2Collapsed = False
            scVerticaltop.Panel1Collapsed = False
            scVerticaltop.Panel2Collapsed = False
            Exit Sub
        End If
 
        If t = 0 And l = 0 Then _
           scHorizontal.Panel2Collapsed = True : _
           scVerticaltop.Panel2Collapsed = True
        If t = 0 And l > 0 Then _
           scHorizontal.Panel2Collapsed = True : _
           scVerticaltop.Panel1Collapsed = True
        If t > 0 And l = 0 Then _
           scHorizontal.Panel1Collapsed = True : _
           scVerticalBottom.Panel2Collapsed = True
        If t > 0 And l > 0 Then _
           scHorizontal.Panel1Collapsed = True : _
           scVerticalBottom.Panel1Collapsed = True
 
    End Sub
 
 
    Private Sub bl_mousemove(ByVal sender As Object, e As MouseEventArgs)
        MsgBox(DirectCast(sender, Button).Text)
    End Sub
 
 
    Public Sub setsplitterhalfwidth(sc As SplitContainer)
        sc.SplitterDistance = sc.Width \ 2
    End Sub
 
End Class


Beitrag wurde zuletzt am 15.02.18 um 22:20:26 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Bildschirm "vierteilen" 
Autor: Franki
Datum: 19.02.18 02:35

Hallo Stefan,

warum in aller Welt braucht man so etwas?
Windows ist schon seit Jahrzehnte in der Lage die Fensterpositionen bzw. Fenstergrößen der User zu speichern und beim nächsten Aufruf wieder zu rekonstruieren. Soweit so gut, das ist die Freiheit des Users.

Wie möchtest du das regeln, dass in deiner Anwendung die Fenstergrößen des / der Browser verwaltet werden und der User unabhängig von deiner Anwendung die Seite abc.xxx aufrufen möchte?

Gestatte doch deinen User die Freiheit die notwendigen Fenstergrößen nach seinem Geschmack anordnen zu können und gut ist es. Eine Anfangsvorgabe bei Erstinstallation kannst du ma machen, aber dansch sollte der User bestimmen können was er wie sehen möchte.

Gruß
Frank
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Bildschirm "vierteilen" 
Autor: stefanbla80
Datum: 25.02.18 11:18

Hallo zusammen,

ja stimmt schon - bin am Testen ...
Ob das wirklich so gut ist weiß ich nicht.

Die Idee ist eine Art "Favouriten-Bildschirm" um schnell bzw. schneller immer wieder benötige Homepages wie z. B. Übersetzungsprogramm offen zu haben ...

Grüße
Stefan
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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