dポイントプレゼントキャンペーン実施中!

二つのフォームを並べて表示させ、フォームAを移動すると、それにともないフォームBも一緒に移動させたいと考えています。

どのようにすれば良いのでしょうか。
VB6を使用しています。ご教授お願いします。

A 回答 (3件)

フォームAにTimerコントロールを用意して、


Timerイベントに
フォームB.Move Me.Left + Me.Width, Me.Top
とするのはどうですか。
TimerコントロールのIntervalの設定はお好みで。
    • good
    • 0

フォームには移動したときのイベントがありません。

それで、一番妥当なのは#1のようにMouseMoveイベントですが、タイトルバー上では認知しないために、移動後一度タイトルバー以外のフォーム上でマウスを動かす事によってようやく移動します。

VB.NETではForm_Moveイベントが組み込まれているようですけど。
    • good
    • 0

おはようございます。



時間が無いので、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
などとすると、フォームがずれたまま移動します。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!