Startfenster platzieren

Hallo,

wie kann man in VB6 das Startfenster eines Programms auf dem Bildschirm gezielt platzieren. Also z.B. linke obere Ecke.

Danke.

Gruß
Gunter

wie kann man in VB6 das Startfenster eines Programms auf dem
Bildschirm gezielt platzieren. Also z.B. linke obere Ecke.

Hi Gunter,

Option Explicit

Private Sub Form_Load()
Me.Left = 0
Me.Top = 0
End Sub

getestet mit VB5.0 :smile:

Gruß
Reinhard

Hallo,

wie kann man in VB6 das Startfenster eines Programms auf dem
Bildschirm gezielt platzieren. Also z.B. linke obere Ecke.

die Form hat eine Eigenschaft ‚Startupposition‘.
Stellst Du die auf 0 = Manuell, kannst Du die Position in den Eigenschaften Top und Left festlegen,

Gruß Rainer

OT VB/Vba Form in den Bildschirm ‚wandern‘ lassen

die Form hat eine Eigenschaft ‚Startupposition‘.
Stellst Du die auf 0 = Manuell, kannst Du die Position in den
Eigenschaften Top und Left festlegen,

Hallo Rainer,

kann man die Form auch langsam in den Bildschirm „reinschieben“?

Wahrscheinlich siehst du am Code schneller was ich plane:
Leider wird die Form erst nach der Schleife bzw. msgox angezeigt :frowning:
(in Excel-Vba auch)

Private Sub Form\_Load()
Dim N As Single, T As Single, W As Single
Me.Left = 0
Me.Top = 0
W = Me.Width
For N = 0 To W Step 1000
 T = Timer
 Me.Width = N
 DoEvents
 While Timer 


Gruß
Reinhard

Hallo Reinhard,

schreib mal in Form_Load als erste Zeile:

Me.Show

Gruß Rainer

Hallo Reinhard,

besten Dank.

Wie platziere ich das Fenster zentriert im Schirm?
Muss ich da rechnen, oder geht das einfacher?

Gruß
Gunter

Me.Left = 0
Me.Top = 0
End Sub

schreib mal in Form_Load als erste Zeile:

Me.Show

Hallo Rainer,

danke dir, ja, klappt natürlich.

Gruß
Reinhard

Wie platziere ich das Fenster zentriert im Schirm?
Muss ich da rechnen, oder geht das einfacher?

Hallo Gunter,

wenn dir die Einstellungen an der Stelle die dir Rainer in den Einstellungen nannte nicht ausreichen, kannst ja mal allle ausprobieren mußt du es „berechnen“.

Die Brerechnung weiß ich nie auswendig und googleerstmalnach den richtigen Befehlen dafür.
Es hängt ja von Bildschirm, Auflösung usw. ab, auswendig weiß ich da nie obs Pixel, Twix,Inxh, dpi oder wie das Zeugs alles heißt sind.

Ist ja das Gleiche wie bei Width einer Userform in VBA und width einer Form in VB, die in VBA ist standardmäßig 240 breit, die in VB 4800 breit.
Auch da muß ich mich immer durch Nachlesen schlau machen was das für maßeinheiten sind, denn optisch wirken sie annähernd gleich breit, also nie 10mal breiter oder so.

Gruß
Reinhard

Hallo Gunther,

Definiere bitte rechnen *gg*

nein das geht ganz einfach :smile:

'Auszurichtendes Formular = Form1

' rechts unten
Form1.Top = Screen.Height - Form1.Height
Form1.Left = Screen.Width - Form1.Width
 
' rechter Rand Mitte
Form1.Left = Screen.Width - Form1.Width
Form1.Top = Screen.Height / 2 - Form1.Height / 2
 
' rechts oben
Form1.Top = 0
Form1.Left = Screen.Width - Form1.Width
 
' links oben
Form1.Top = 0
Form1.Left = 0
 
' linker Rand Mitte
Form1.Left = 0
Form1.Top = Screen.Height / 2 - Form1.Height / 2
 
' links unten
Form1.Top = Screen.Height - Form1.Height
Form1.Left = 0
 
' oben Mitte
Form1.Left = Screen.Width / 2 - Form1.Width / 2
Form1.Top = 0
 
' unten Mitte
Form1.Left = Screen.Width / 2 - Form1.Width / 2
Form1.Top = Screen.Height - Form1.Height
 
' zentriert auf dem Bildschirm
Form1.Left = Screen.Width / 2 - Form1.Width / 2
Form1.Top = Screen.Height / 2 - Form1.Height / 2

Oder halt alles zusammengetuetelt mit der Move Methode :smile:

Form1.Move Left, Right, Width, Height

Beachte aber bitte, das dazu WindowsState auf 0 gesetzt sein muss.
Willst du das Fenster mittig im Screen oder im Parent Window anzeigen kannst du das auch realisieren durch setzen der Eigenschaft StartUpPosition. Beim manuellen ausrichten muss dieses Eigenschaft auf 0 gesetzt sein.

MfG Alex

nein das geht ganz einfach :smile:

Hallo Alex,

ja, deine Lösung sieht einfach aus, aber anscheinend beziehst du dich auf den ganzen Bildschirm, was ist wenn das „Fenster“ kleiner ist als der Bildschirm oder nur eines von mehreren Fenstern?

Gruß
Reinhard

Hallo Reinhard,

ja, deine Lösung sieht einfach aus, aber anscheinend beziehst
du dich auf den ganzen Bildschirm, was ist wenn das „Fenster“
kleiner ist als der Bildschirm oder nur eines von mehreren
Fenstern?

Das kommt darauf an Reinhard.
Ist das Fenster kleiner als der zur Verfügung stehende Platz, so kannst du es via

Me.Move Screen.Width / 2 - Me.Width / 2, Screen.Height / 2 - Me.Height / 2

platzieren!

Handelt es sich um ein MDICHILD, so machst du die Aenderung ja eh im MDI Formular und da hast du auch die Daten :wink:

Willst du es mittig von irgendein anderen Fenster positionieren, so musst du erst deren Grösse auslesen, was wiederrum etwas anspruchsvoller wird. Aber dazu hat der Fragesteller zu wenig preis gegeben!

MfG Alex