- ベストアンサー
フォームの外にドラッグ&ドロップ
現在、VB2005においてアプリケーションを開発しています。 よく、リストボックスなどにドラッグ&ドロップしてパスを入力させる 方法がありますが、これの逆?をやりたいと思っております。 つまり、「すでにリストボックスなどに入力されたアイテムをフォームのそと にドラッグ&ドロップさせた場合にリストボックスからそのアイテムを さくじょする」という動作です。 フォームの外であることをどのように判断してよいかわからないため、 MouseUp,DragDropのイベントを受け取ることができません。 よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
QueryContinueDragイベントで対応ってことになりそうですよ フォームレベルにどのアイテムをDragしたのかを保存しておく変数を用意します Dim nItem as integer Drag開始時に nItem = ListBox1.SelectedIndex といった感じで... QueryContinueDragイベントで if e.Action = DragAction.Drop then Dim pt As Point = ListBox1.PointToClient(ListBox1.MousePosition) ' ListBox1以外でドロップされた場合 ' フォーム以外ならListBox1をForm1などに置き換えてください if ListBox1.ClientRectangle.Contains(pt)=False then ListBox1.Items.RemoveAt( nItem ) end if end if といった具合でしょう ...
その他の回答 (1)
- unamana19
- ベストアンサー率62% (56/89)
テキストボックスの内容をドラッグドロップしてコピーするには Private Sub TextBox1_MouseDown(ByVal sender As Object, _ ByVal e As System.Windows.Forms.MouseEventArgs) _ Handles TextBox1.MouseDown TextBox1.DoDragDrop(TextBox1.Text, DragDropEffects.Copy) End Sub こんな感じになります。 メモ帳などに入力されたテキストがドラッグドロップできます。
お礼
上記の方法でできました。 助かりました。ありがとうございます。