画像の小さなサムネイルを含むリストビューがあります。各画像には、フルパスが含まれるタグがあります。
右クリックメニューを使用して、ユーザーは[コピー]をクリックできます。
次に、このコードが実行されます。
Dim selectedfile As String
selectedfile = Me.lvFotos.SelectedItems(0).Tag
Dim dataobj As New DataObject(DataFormats.FileDrop, selectedfile)
Clipboard.Clear()
Clipboard.SetDataObject(dataobj)
デスクトップをクリックしてファイルを貼り付けると、VS2010で例外エラーが発生します。
タイプ 'System.Runtime.InteropServices.COMException'の例外がSystem.Windows.Forms.dllで発生し、マネージ/ネイティブ境界の前に処理されませんでした
追加情報:無効なFORMATETC構造(HRESULTからの例外:0x80040064(DV_E_FORMATETC))
私はここで何が間違っているのですか?
rg。エリック
クリップボードへのファイルのコピーでJohnSmithのコードを使用する:
Dim f() As String = {"C:\temp\Folder.jpg"}
Dim d As New DataObject(DataFormats.FileDrop, f)
Clipboard.SetDataObject(d, True)
(Windows 7 x64上のVS2013で動作することがテストされています。)
ファイル名を表す文字列の配列を渡す必要があることに注意してください。必要に応じて、貼り付ける前にユーザーが複数のアイテムを収集できるようにすることができます。
true
中には、Clipboard.SetDataObject
ユーザーが貼り付け前にファイルして終了を選択していたそうならば、彼らは彼らの選択を失っていないだろう、あなたがプログラムを終了すると、データがクリップボードに残ることができます。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加