2013-05-28 36 views
0

我嘗試做的是:文件拖放支持一個RichTextBox(.NET)

  • 能夠將&文件拖放的一個文本框(被丟棄的文件應顯示爲文本中的小圖標) 。
  • 將文本和刪除的文件保存到數據庫。
  • 通過雙擊其圖標打開文本框中的拖放文件。

滴速文件,並顯示一個圖標中的文字工作正常,但的部分還留有一些問題:

  • 我怎樣才能被丟棄的文件的路徑信息保存到圖標在TextBox中的表示。自動拖拽RichTextBox的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 

回答