Verschiedene Forms gleichzeit verschieben

Xervek

Mitglied
Hallo,

ich hoffe der Titel ist aussagekräftig genug. Nachdem ich mich nun den ganzen Tag mit testen-googlen-weitertesten-weitergooglen beschäftigt habe allerdings keine Antwort finden konnte und auch sonst keinen Deut weiter bin als bisher wollte ich es hier mal versuchen.
Und zwar, angenommen ich habe ein Form mit dem Namen "Form1". Auf diesem "Form1" habe ich einen Button welcher folgende Funktion hat

Private Sub Command1_Click()

Form2.Show

End Sub

Somit ist nun ein 2. Form aufgegangen, welches wie wir ja wissen "Form2" heißt. Nun müsste Form1 und auch Form2 gleichzeit auf sein. Ich möchte nun Form1 als "Hauptform" benutzen und Form2 als Zusatzmenü welches ich an der Seite meines Programms habe., alles soweit auch wunderbar bisher.

Nun möchte ich allerdings, dass wenn ich "Form1" verschiebe, dass "Form2" im Bezug zu Form1 gleich bleibt, sich allerdings mitverschiebt.

Ich hoffe ihr versteht mein Problem und könnt mir helfen...

Vielen Dank im Voraus
 
Hallo, benutze als Hauptform ein MDI Formular.
Form2 musst Du dann in den Eigenschaften als ChildForm angeben (MDIChild = True).
 
Hallo Xervek,

befindet sich dann Form2 innerhalb von Form1 oder soll Form2 am Außenrand von Form1 angedockt sein ?
 
@ JensG

wenn du schon so fragst, es soll/te eigentlich außen angedockt sein. Ich weiß nicht ob du das kennst, aber bei den nVidia Treibern beispielweise ist soetwas dabei. Ein Menü auf der linken Seite welches man auf und zuklappen kann. Soetwas wollte ich versuchen, allerdings habe ich bisher nichts gebacken bekommen. Ist es möglich soein "Andock" Form anders zu realisieren oder sollte es gemacht werden (ich habe es im Moment noch nicht versucht) wie es wincnc gesagt hat?

@wincnc, vielen Dank ich werde das gleich mal testen!

Edit: Ich habe es jetzt getestet und so sollte es eigentlich nicht sein. Ich wollte ein "normales" Forumlar benutzen um das ganze hinzubekommen. Gibt es da jetzt noch eine möglich?
Vielen Dank aber trotzdem!
 
Zuletzt bearbeitet:
Hallo,

hier mal ein Ansatz.

Code:
Option Explicit
Private Sub Form_Load()
    
    Load Form2
    Form2.Show
    Form2.Top = Form1.Top
    Form2.Left = Form1.Left + Form1.Width
    
End Sub
Private Sub Timer1_Timer()

    Static fTop As Integer

    If fTop <> Form1.Top Then
        Form2.Top = Form1.Top
        Form2.Left = Form1.Left + Form1.Width
        fTop = Form1.Top
    End If
    
End Sub

Jens
 
Hallo,

wow das ist jetzt schon ziemlich krass. Find ich wunderbar diese Lösung, letztlich reicht mir das, da alles andere bereits vorhanden ist. Hab nie wirklich daran gedacht es mit einem Timer zu machen aber das ist wirklich genial. Vielen Dank für diese wunderbare Hilfe!
 
Zurück