我尝试做的是:
删除文件并在文本中显示图标的部分工作正常,但仍然存在一些问题:
如何将删除文件的路径信息保存到TextBox中的图标表示中。 RichTextBox的自动Drag& Drop功能做了一些但是我无法弄清楚如何。 (如您所见(在清单1中)我尝试将带有两个条目(文件的图像和路径)的DataObject粘贴到TextBox,但路径不会保存。)
第二个问题是:如何读取双击文件的信息(文件路径)? (参见清单2,其中一个可能会失败) 我如何解释SeletedRTF以获取我想要的信息?
任何人都可以帮我吗?
清单1:
Private Sub RTB_Kommentar_DragDrop(sender As System.Object, e As System.Windows.Forms.DragEventArgs) Handles RTB_Kommentar.DragDrop
If e.Data.GetDataPresent("FileDrop", True) = True Then
Dim paths As String() = CType(e.Data.GetData("FileDrop"), Object)
If (paths.Count > 0) Then
Dim icon As Icon = System.Drawing.Icon.ExtractAssociatedIcon(paths(0))
Dim image = CreateTextBoxImage(paths(0), icon)
Dim dObj As New DataObject()
dObj.SetImage(image)
dObj.SetText(paths(0))
Clipboard.SetDataObject(dObj)
RTB_Kommentar.Paste()
[...]
e.Effect = DragDropEffects.None
End If
End If
End Sub
清单2:
Private Sub RTB_Kommentar_DoubleClick(sender As System.Object, e As System.EventArgs) Handles RTB_Kommentar.DoubleClick
Dim dataObject As New DataObject()
dataObject.SetDataObject(RTB_Kommentar.SelectedRtf)
Dim img = dataObject.GetImage()
Dim t = dataObject.GetText()
End Sub
答案 0 :(得分:0)
如果有人有兴趣我解决了这个问题。 通过以下链接的一些帮助:
ExRichTextBox (on CodeProject) - Enhanced RichTextBox with insert functions for images or text OutlookDataObject (on CodeProject) - A object to get files that where dragged from Outlook
经过一些沉重的字节推断后,iam现在能够将文件添加到RichTextBox并在双击中重新打开它们。
您可以找到示例项目here