マウスのドラッグ・アンド・ドロップで操作 |
マウスのドラッグ・アンド・ドロップでファイル名取得 (105) | |
|
フォームにファイルリストボックスとテキストボックスを貼り付けて下さい。 ファイルリストボックスに表示されたファイル名をテキストボックスに取り込みます。 Option Explicit 'SampleNo=105 WindowsXP VB6.0(SP5) 2002.05.19 Private XPos As Long Private YPos As Long Private Sub Form_Load() File1.Path = "c:\windows" 'プログラム内ですべての OLE ドロップ操作を処理できます。 Text2.OLEDropMode = vbOLEDropManual ' 1 End Sub Private Sub File1_MouseDown(Button As Integer, _ Shift As Integer, X As Single, Y As Single) 'マウスのドラッグ開始 File1.Drag vbBeginDrag End Sub Private Sub Text1_DragDrop(Source As Control, X As Single, Y As Single) 'テキストボックスにドロップ 'Debug.Print TypeName(Source) Text1.Text = File1.FileName End Sub もうひとつテキストボックスを貼り付けて下さい。 このテキストボックスをドラッグ・アンド・ドロップで移動します。 Private Sub Text2_MouseDown(Button As Integer, Shift As _ Integer, X As Single, Y As Single) 'ドラッグ開始位置の保存とドラッグの開始 YPos = Y XPos = X Text2.Drag vbBeginDrag End Sub 補正しておかないとドロップした位置がずれる Private Sub Form_DragDrop(Source As Control, _ X As Single, Y As Single) 'フォーム上にドロップした時の補正 Source.Move X - XPos, Y - YPos End Sub これを実施しないと微小な移動ができない Private Sub Text2_DragDrop(Source As Control, X As Single, Y As Single) '同一コントロール内でドロップした場合の補正 Source.Move (Text2.Left + X - XPos), (Text2.Top + Y - YPos) End Sub |
エクスプローラーからファイルをドラッグ・アンド・ドロップする。 (105) | |
エクスプローラーからファイルをドラッグし、テキストボックスにドロップすればそのパスを含んだファイル名が取得できます。 Private Sub Form_Load() File1.Path = "c:\windows" 'プログラム内ですべての OLE ドロップ操作を処理できます。 Text2.OLEDropMode = vbOLEDropManual ' 1 End Sub Private Sub Text2_OLEDragDrop(Data As DataObject, Effect As Long, _ Button As Integer, Shift As Integer, X As Single, Y As Single) 'ドラッグしたファイル名をテキストボックスにドロップ Text2.Text = Data.Files(1) End Sub |
2002/05/20