フォーム上に配置した複数のテキストボックスを複数選択するには?

解決


Cappuccino  2004-02-24 01:13:00  No: 112059  IP: [192.*.*.*]

いつも参考にさせていただき、お世話になってます。
質問させていただきます。
フォーム上に配置した複数のテキストボックスに対して、
エクセルのテキストボックスと同じように同時に複数選択
するような処理は可能でしょうか?選択後、移動させよう
と思っているのですが、複数選択する処理の方法について、
VB関連HP、ヘルプなどみたのですが、想像もつかない
状態です。どなたかにお答えいただければ幸いです。
よろしくお願いいたします。
開発環境:VB 6.0 (SP5)
OS:Windows XP

編集 削除
すぺらんかー  2004-02-24 10:04:03  No: 112060  IP: [192.*.*.*]

とりあえず
Option Explicit
Private SelectFlag() As Boolean
Private MoveFlag As Boolean
Private OX As Single
Private OY As Single

Private Sub Form_Load()
ReDim SelectFlag(Text1.UBound)
End Sub

Private Sub Text1_Click(Index As Integer)
        If SelectFlag(Index) Then
            SelectFlag(Index) = False
            Text1(Index).BackColor = RGB(255, 255, 255)
        Else
            SelectFlag(Index) = True
            Text1(Index).BackColor = RGB(255, 0, 0)
        End If
End Sub

Private Sub Text1_MouseDown(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single)
    MoveFlag = True
    OX = X
    OY = Y
End Sub

Private Sub Text1_MouseMove(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single)
    Dim i As Integer
    If MoveFlag = True Then
        For i = Text1.LBound To Text1.UBound
            If SelectFlag(i) = True Then
            With Text1(i)
                If OX <> X Then .Left = .Left - (OX - X)
                If OY <> Y Then .Top = .Top - (OY - Y)
            End With
            
            End If
                
        Next i
    End If
End Sub

Private Sub Text1_MouseUp(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single)
MoveFlag = False
End Sub

後は自力でどうぞ。

編集 削除
すぺらんかー  2004-02-24 10:14:33  No: 112061  IP: [192.*.*.*]

If OX <> X
If OY <> Y
これいらないね。

編集 削除
Cappuccino  2004-02-24 19:57:31  No: 112062  IP: [192.*.*.*]

すぺらんかーさんありがとうございました。
こういう風にフラグ立てればいいんですね。。
気づかなかったです。。移動のコードまで書い
ていただいて・・・。
ほんとにありがとうございました〜m(_ _)m

編集 削除