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

Visual-Basic Einsteiger
Bestimmen der Darstellungsposition einer Form bei 2 Monitoren 
Autor: guenni255
Datum: 25.09.16 13:32

Hallo Forum

Ich habe ein Problem bei der Darstellung von Formularen.

Ich möchte gern durch Autostart ein Form im Bereich eines 2. Monitores darstellen.
Kenn mir jemand dabei helfen wie ich an die Koordinaten kommen in deren Bereich ich darstellen kann.

Vielen Dank im Voraus

Gruß Günni
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Bestimmen der Darstellungsposition einer Form bei 2 Monitoren 
Autor: Franki
Datum: 26.09.16 01:18

Hallo Günni,

du musst zuerst mal davon ausgehen, dass mehrere Monitore vorhanden sind und auch kontrollieren ob sie erreichbar sind. Du kannst die Konfiguration des Users erst mal nicht kennen.

Ich mache das so, da nach dem Setup meiner Programme alle Formulare sichtbar sind, der User kann diese kann verändren verschieben wohin er möchte, sei es auf mehrere Monitore oder was auch immer.

Beim Beenden speichere ich die Koordinaten und beim nächsten Start werden sie wieder ausgelesen und die Formulare entsprechend positioniert

Schwierigkeiten gibt es aber z.B. dann wenn dann der zweite Monitor nicht verfügbar ist oder eine andere Auflösung hat usw.

Wenn das für dich wichtig ist, dann musst entsprechende Abfragen einbauen.

Du solltest genauere Angaben liefern was du für den Multimonitorbetrieb für Vorassetzungen an den User hast.


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

Re: Bestimmen der Darstellungsposition einer Form bei 2 Monitoren 
Autor: Oggi
Datum: 26.09.16 16:37

Howdy guenni255

Mit nachfolgendem Tipp wird die Anzahl der Monitore ermittelt. Auf dem entsprechenden Moni wird die Bildschirmgröße mit Screen.Width und Screen.Height ermittelt und deine Form mit Me.Left und Me.Top plaziert.
http://www.vbarchiv.net/tipps/details.php?id=1484

Beitrag wurde zuletzt am 26.09.16 um 16:45:45 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Bestimmen der Darstellungsposition einer Form bei 2 Monitoren 
Autor: guenni255
Datum: 27.09.16 20:09

Hallo

Vielen Dank für eure Antworten.

@Franki
Du hast natürlich recht mit den Prüf-abfragen, wenn das Programm für jemanden anderes ist. Aber dies nutze nur ich an meiner Maschine und daher weiß ich das ein 2.Monitor immer dran ist.
Mit ging es auch darum die von dir erwähnten Koordinaten zu ermitteln.

Dies hat Oggi mir gezeigt Vielen Dank.

Gruß Günni
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Bestimmen der Darstellungsposition einer Form bei 2 Monitoren 
Autor: guenni255
Datum: 27.09.16 20:38

Hallo Oggi

Da ergibt sich für mich nur das Problem wie spreche ich den ENTSPRECHENDEN Monitor, in diesem Fall Monitor 2, an??.
das Programm Startet ja immer auf dem ersten Monitor.
Nun muss ich mein Form auf den 2.Monitor verschieben.
Die Position lege ich mit Me.top und Me.left fest. Nur dazu muss ich mich auf dem 2. Monitor befinden. Wie Komme ich dahin?
Gibt es Befehle wie screen2.top oder screen2.setfocus oder ähnlich. Sorry das ich nachfrage aber bin noch Einsteiger.

Gruß Günni
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Bestimmen der Darstellungsposition einer Form bei 2 Monitoren 
Autor: Oggi
Datum: 28.09.16 11:09

Howdy Günni,

da du den Code nur für dich auf deinem zweiten Monitor benötigst, ist die Lösung einfach:
Erstelle zwei Formen, die Erste mit zwei Schaltflächen und füge dort nachfolgenden Code ein. Durch manuelles Verschieben von Form1 wird dann die <Position> von Form2 auf dem zweiten Monitor festgelegt. Beim nächsten Programmstart erscheint dort dann wie gewünscht die Form2.
Private Sub Command1_Click()
    MsgBox "Top: " & Me.Top & vbCrLf & "Left: " & Me.Left
    SaveSetting App.Title, "Options", "Form2Moni2Left", Me.Left
    SaveSetting App.Title, "Options", "Form2Moni2Top", Me.Top
End Sub
 
Private Sub Command2_Click()
    Form2.Show
    Form2.Top = GetSetting(App.Title, "Options", "Form2Moni2Top", 0)
    Form2.Left = GetSetting(App.Title, "Options", "Form2Moni2left", 0)
End Sub
 
Private Sub Form_Load()
    Command1.Caption = "Position"
    Command2.Caption = "Form2"
    Form2.Show
    Form2.Top = GetSetting(App.Title, "Options", "Form2Moni2Top", 0)
    Form2.Left = GetSetting(App.Title, "Options", "Form2Moni2Left", 0)
End Sub
 
Private Sub Form_Unload(Cancel As Integer)
    Unload Form2
End Sub


Beitrag wurde zuletzt am 28.09.16 um 11:13:41 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Bestimmen der Darstellungsposition einer Form bei 2 Monitoren 
Autor: effeff
Datum: 28.09.16 16:02

Wenn es Deine eigenen Monitore sind, deren Auflösung Du kennst:

Bei einem erweiterten Desktop hast Du eine Gesamtauflösung. Du brauchst als als "Left" nur die Anzahl der Pixel den linken Monitors zu der gewünschten Position auf dem rechten Monitor dazu zählen...

Wenn Du auf dem rechten Monitor eine Form 200 Pixel vom linken Rand anzeigen lassen möchtest und der linke Monitor eine Auflösung von 1920x1080 Pixeln hat, dann ist Dein "Left" eben 1920 + 200= 1120

EALA FREYA FRESENA

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Bestimmen der Darstellungsposition einer Form bei 2 Monitoren 
Autor: Oggi
Datum: 28.09.16 19:49

Wenn Du dagegen auf dem linken Monitor eine Form 200 Pixel vom linken Rand anzeigen lassen möchtest und der rechte Monitor eine Auflösung von 1920x1080 Pixeln hat, dann ist Dein "Left" eben 200 - 1920 = -1720
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Bestimmen der Darstellungsposition einer Form bei 2 Monitoren 
Autor: Franki
Datum: 29.09.16 09:50

Hallo Günni,

Rechenbeispiele hast du ja schon bekommen, aber besser ist es, das auch vorab mal zu kontrollieren. Denn bei zwei Monitoren kann ja sowohl der rechte als auch der linke der primäre Monitor in Windows sein.

Das hängt davon ab, was deine Grafikkarte so macht und wie du das dann "verschoben" hast je nach Bedarf.

Es kann also gut sein, das ganz links am Rand ein negativer Wert herrscht in der Position.

Testen kannst du z.B. so:

Private Sub Command1_Click()
    ' Positionsbestimmung und Groesse
    GesamtbreiteFormular = Me.Width
    GesamtbreiteWindows = Screen.Width
    PosLinks = Me.Left
 
    MsgBox "Breite gesamt: " & GesamtbreiteWindows & vbCrLf & "Formularbreite:" & _
      "" & GesamtbreiteFormular & vbCrLf & "Meine Position: " & PosLinks
End Sub
Teste mal etwas indem du mit der Maus das Formular durch die Gegend schiebst und auf die Schaltfläche klickst. Dann bekommst du einen Überblick wie sich das verhält auf deinem Rechner.

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

Re: Bestimmen der Darstellungsposition einer Form bei 2 Monitoren 
Autor: guenni255
Datum: 30.09.16 06:49

Hallo Forum

Ich danke euch für eure zahlreichen Antworten.

Der einfachste und für mich ausreichende Weg ist der Vorschlag von effeff.

Ich werde natürlich auch die anderen Vorschläge ausprobieren und mir zu Herzen nehmen z.B. die Überprüfung.

Nochmals mein Dank an alle.

Gruß Günni
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Bestimmen der Darstellungsposition einer Form bei 2 Monitoren 
Autor: effeff
Datum: 30.09.16 20:03

Häh? Dann wäre der Left bei 200... Es sei denn, der zweite Monitor ist als erster Monitor eingerichtet.

EALA FREYA FRESENA

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Bestimmen der Darstellungsposition einer Form bei 2 Monitoren 
Autor: Oggi
Datum: 30.09.16 20:07

lass dich nicht auf den Arm nehmen, mein Gutschter
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