重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

List1で複数選択された項目をList2へドラッグ&ドロップでコピ
ーしようと思います。

まず最初にList1のListIndex(1-3)を選択し色を反転させるとし
ます。

その状態でドラッグ&ドロップを開始しようとし、List1の任意
のListIndexの部分をクリックするとその後からクリックされた
任意のListIndexの部分がドラッグ&ドロップの対象になり、最
初に予定したListIndex1-4は選択が解除されてしまいます。

これを回避するにはどのようにすればいいのでしょうか?


VB6です。


よろしくお願いします。

A 回答 (2件)

D&Dでチャレンジしてみたのですが、DRAG中にセレクトが変わるので確定させて選択項目を配列に入れたりすると出来そうですね。


セレクトして確定コマンドなぞ押すか、確定してから一定時間で決定としてからドラッグするようにしないと無理そうですよ。
設計を見直したほうが良いみたいですね。
単にD&DしただけではSELECTEDが動いて駄目でした。
楽しそうな課題なのでがんばってください。

この回答への補足

>DRAG中にセレクトが変わるので確定させて選択
>項目を配列に入れたりすると出来そうですね。

実質それでセレクトされていたIndexは取得可能
だと思うんですが、いざ、D&Dをしようとすると
色の反転している部分が後からセレクトされて
いる部分に移動してしまって、直感的でないんで
すよねぇ。

標準機能であっても良さそうな気もするんです
が・・(-_-;)

補足日時:2004/10/19 11:43
    • good
    • 0

Private Sub Command1_Click()


Dim flg As Boolean '重複フラグ
Dim i As Integer 'リスト1の数
Dim j As Integer 'リスト2の数

For i = 0 To List1.ListCount - 1
If List1.Selected(i) = True Then

flg = False
For j = 0 To List2.ListCount - 1
If List2.List(j) = List1.List(i) Then
flg = True
Exit For
End If
Next j
If flg = False Then
List2.AddItem List1.List(i)
End If
End If
Next i
End Sub
Private Sub Command2_Click()
List2.Clear
End Sub
SHUWASYSTEMさんのサンプルソースです。
回答になっていないのですが、DRAG&DROPを使わないとこんな風にできますよ。

この回答への補足

Commandボタンではできてたので、D&Dで書き直そうかと思いまして。。。

補足日時:2004/10/18 19:47
    • good
    • 0

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