TabControl と RichText とDragDrop への返答

投稿で使用できる特殊コードの説明。(別タブで開きます。)
本名は入力しないようにしましょう。
投稿した後で削除するときに使うパスワードです。返答があった後は削除できません。
返答する人が目安にします。相手が小学生か社会人かで返答の仕方も変わります。
最初の投稿が質問の場合、質問者が解決時にチェックしてください。(以降も追加書き込み・返信は可能です。)
※「過去ログ」について書くときはその過去ログのURLも書いてください。

以下の返答は逆順(新しい順)に並んでいます。

投稿者 N88-BASIC  (社会人) 投稿日時 2021/3/23 18:02:42
るきお さん、ご回答ありがとうございました。

ご案内いただいた内容に従って、コードにて、AllowDrop を True にすることで Drag & Drop が実現できました。
イベント処理も、Form で設定していた Drag & Drop のイベント処理の Handles を RichText にすることで、苦労することなく設定と処理を実現できました。

ネットでは C# の例しかなく、ここで質問させていただきました。
コーディング時にインテリセンス(?)が上手くガイドしてくれて助かりました。

今後ともよろしくお願いします。
投稿者 るきお  (社会人) 投稿日時 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 ObjectByVal 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 ObjectByVal 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/21 10:51:47
Winodws 10 Home (64) + Visual Basic 2019 にてアプリを作成しています。
題名の件で以下のような設定をしています。

(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 が利用できればありがたい)。

以上、よろしくお願いします。