| |
VB.NET - Ein- und UmsteigerBildschirm "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 | |
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 | |
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 | |
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. | |
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 | |
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 | |
| 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 |
|
|
Neu! sevDTA 3.0 Pro
SEPA mit Kontonummernprüfung
Erstellen von SEPA-Dateien mit integriertem BIC-Verzeichnis und Konto- nummern-Prüfverfahren, so dass ungültige Bankdaten bereits im Vorfeld ermittelt werden können. Weitere InfosTipp des Monats TOP Entwickler-Paket
TOP-Preis!!
Mit der Developer CD erhalten Sie insgesamt 24 Entwickler- komponenten und Windows-DLLs. Die Einzelkomponenten haben einen Gesamtwert von 1605.50 EUR...
Jetzt nur 599,00 EURWeitere Infos
|