vb.net如何处理拖动到按钮上的文本以打开新表单,并将拖动的文本直接复制到新表单上的richtextbox?

vb.net如何处理拖动到按钮上的文本以打开新表单,并将拖动的文本直接复制到新表单上的richtextbox?,vb.net,text,drag-and-drop,Vb.net,Text,Drag And Drop,我希望实现以下目标: If draggedText <> "" Then richTextBox1.Text = draggedText draggedText = "" End If 用户将文本从与我的应用程序无关的任何打开的窗口(例如firefox或word)拖到我的应用程序中form1的按钮1上。当他/她这样做时,一个新表单(称为form2,包含richtextbox)将打开,拖动的文本将直接复制(或插入)到新表单的richtextbox中。b

我希望实现以下目标:

If draggedText <> "" Then
        richTextBox1.Text = draggedText
        draggedText = ""
End If
用户将文本从与我的应用程序无关的任何打开的窗口(例如firefox或word)拖到我的应用程序中form1的按钮1上。当他/她这样做时,一个新表单(称为form2,包含richtextbox)将打开,拖动的文本将直接复制(或插入)到新表单的richtextbox中。button1已将allowdrop设置为true。除此之外,我不知道如何继续

我试过:

e.effects = DragDropEffects.Copy
但这似乎还不够。你能帮忙吗


谢谢

学习拖放是第一步-或-

本质上,您需要为目标启用拖放,处理拖放事件,然后实现所需的操作

从MSDN获取有关拖动文本的信息:


私有MouseIsDown为布尔值=False

专用子文本框1u鼠标向下(ByVal sender作为对象,ByVal e作为对象_ System.Windows.Forms.MouseEventArgs)处理TextBox1.MouseDown '设置标志以显示鼠标已按下。 MouseIsDown=True 端接头

私有子文本框1u MouseMove(ByVal发送者作为对象,ByVal e作为对象_ System.Windows.Forms.MouseEventArgs)处理TextBox1.MouseMove 如果鼠标落下的话 '启动拖动。 TextBox1.DoDragDrop(TextBox1.Text,DragDropEffects.Copy) 如果结束 MouseIsDown=False 端接头

专用子文本框2u DragEnter(ByVal发送方作为对象,ByVal e作为对象_ System.Windows.Forms.DragEventArgs)处理TextBox2.DragEnter '检查要删除的数据的格式。 如果(例如Data.GetDataPresent(DataFormats.Text)),那么 '显示复制光标。 e、 效果=DragDropEffects.Copy 其他的 '显示禁止放置光标。 e、 效果=DragDropEffects。无 如果结束 端接头

私有子文本框2u DragDrop(ByVal发送方作为对象,ByVal e作为对象_ System.Windows.Forms.DragEventArgs)处理TextBox2.DragDrop '粘贴文本。 TextBox2.Text=e.Data.GetData(DataFormats.Text) 端接头

我想出来了。我分享是为了让其他人受益

首先,我在其中一个模块中声明了一个全局变量:

Public draggedText As String = ""
其次,我对按钮上的dragdrop事件进行了如下处理:

Private Sub button1_DragDrop(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles button1.DragDrop
    draggedText = e.Data.GetData(DataFormats.Text)
    frm_form2.Show()
End Sub
第三,在frm_form2的加载事件中,我添加了以下内容:

If draggedText <> "" Then
        richTextBox1.Text = draggedText
        draggedText = ""
End If
如果拖动文本“”,则
richTextBox1.Text=draggedText
draggedText=“”
如果结束
就这样。没有我想的那么复杂。此外,您还可以添加上一个答案中提到的dragEnter事件的代码,以更改光标的外观


我希望这能有所帮助。

谢谢您的回复。我知道上述方法,并且已经阅读了您发布的文章。然而,这对我没有帮助。您编写的代码和发布的文章假设您希望从窗体上的一个控件拖放到另一个控件。我想要的是不同的(如我最初的问题所述)。无论如何,谢谢你的帮助。