TabControl と RichText とDragDrop
投稿者 るきお  (社会人)
投稿日時
2021/3/22 08:27:21
プロパティウィンドウには表示されませんが、RichTextBoxにも AllowDrop 等ドラッグ&ドロップ関連の機能は備わっていて、プログラム上は普通に使用できますよ。
Private Sub Form1_Shown(sender As Object, e As EventArgs) Handles MyBase.Shown
RichTextBox1.AllowDrop = True
End Sub
Private Sub RichTextBox1_DragEnter(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles RichTextBox1.DragEnter
If e.Data.GetDataPresent(DataFormats.FileDrop) Then
e.Effect = DragDropEffects.Copy
End If
End Sub
Private Sub RichTextBox1_DragDrop(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles RichTextBox1.DragDrop
'ドロップされた内容を表示する
Dim items() As String = CType(e.Data.GetData(DataFormats.FileDrop), String())
RichTextBox1.Text = items(0)
End Sub
投稿者 N88-BASIC  (社会人)
投稿日時
2021/3/23 18:02:42
るきお さん、ご回答ありがとうございました。
ご案内いただいた内容に従って、コードにて、AllowDrop を True にすることで Drag & Drop が実現できました。
イベント処理も、Form で設定していた Drag & Drop のイベント処理の Handles を RichText にすることで、苦労することなく設定と処理を実現できました。
ネットでは C# の例しかなく、ここで質問させていただきました。
コーディング時にインテリセンス(?)が上手くガイドしてくれて助かりました。
今後ともよろしくお願いします。
ご案内いただいた内容に従って、コードにて、AllowDrop を True にすることで Drag & Drop が実現できました。
イベント処理も、Form で設定していた Drag & Drop のイベント処理の Handles を RichText にすることで、苦労することなく設定と処理を実現できました。
ネットでは C# の例しかなく、ここで質問させていただきました。
コーディング時にインテリセンス(?)が上手くガイドしてくれて助かりました。
今後ともよろしくお願いします。
題名の件で以下のような設定をしています。
(1)TabContol に 2つの Tab を利用し、1つのタブに RichText を Full Doc に設定、2つめのタブに
WebContol を Full Doc に設定
(2)TabContol に対して、AllowDrop = True と DragEndter と DrageDrop イベントを設定
上記状態でファイルをドラッグすると、RichText には AllowDrop の設定項目が無いので、ファイルのドラッグができません。Form に対して、AllowDrop を設定しても RichText 上ではドラッグが不可(アイコンが Cursors.No の状態)(AllowDrop の項目が無いかもしれないので当然かもしれません)
一応、WebControl に対しての DragDrop にしていますが、RichText 上で DragDrop を利用する方法があればご教授ください(特に、RichText 側で DragDrop を処理しなくても、RichText 上でもコンテナーなどに対して DragDrop が利用できればありがたい)。
以上、よろしくお願いします。