- ベストアンサー
二つのフォームを一緒に移動
二つのフォームを並べて表示させ、フォームAを移動すると、それにともないフォームBも一緒に移動させたいと考えています。 どのようにすれば良いのでしょうか。 VB6を使用しています。ご教授お願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
フォームAにTimerコントロールを用意して、 Timerイベントに フォームB.Move Me.Left + Me.Width, Me.Top とするのはどうですか。 TimerコントロールのIntervalの設定はお好みで。
その他の回答 (2)
- nandarou-1011
- ベストアンサー率50% (65/128)
フォームには移動したときのイベントがありません。それで、一番妥当なのは#1のようにMouseMoveイベントですが、タイトルバー上では認知しないために、移動後一度タイトルバー以外のフォーム上でマウスを動かす事によってようやく移動します。 VB.NETではForm_Moveイベントが組み込まれているようですけど。
- tinu 2000(@tinu2000)
- ベストアンサー率40% (147/366)
おはようございます。 時間が無いので、VBAのサンプルを、 これは、重なった3つのフォームを、いつも重なっているようにするコードです。 Private Sub UserForm_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single) UserForm2.Top = UserForm1.Top UserForm2.Left = UserForm1.Left UserForm3.Top = UserForm1.Top UserForm3.Left = UserForm1.Left End Sub VBAですので、VB6とは少しコードが違うかも知れませんが、 そこは、何となく分かると思います。 UserForm1.Top+50 UserForm1.Left+50 などとすると、フォームがずれたまま移動します。