1

次の質問は少し難しいことは知っていますが、本当に解決する必要があります...

テキストボックスコントロール(私の場合はRichTextBox)が含まれるフォームがあるとします。次に、このコントロール内のテキストの一部を選択し、ドラッグイベントを開始して、選択したテキストをフォームの外、Windowsエクスプローラー内のフォルダー(デスクトップなど)にドロップします。

これはどのように達成できますか?次のリンク以外に、ネット上で役立つものは見つかりませんでした:http: //forums.asp.net/t/1600192.aspx/1

私が知っているのは、この種のファイル書き込み操作は「スクラップファイル生成」と呼ばれることだけです。誰かが私に役立つヒントがありますか?

4

1 に答える 1

2

FileDropはファイルが存在することを想定しており、ドロップはファイルのコピーを実行するだけですデータをファイルに書き出してから、その名前をDataObjectに渡す必要があります。以下は単なるデモンストレーションであり、ユーザーのPCで余分なファイルを作成しないように、ファイルの作成方法とすべてのクリーンアップ方法を理解する必要があります。

private void richTextBox1_MouseLeave(object sender, EventArgs e)
{
    // If the left mouse button is down when leaving the rtb
    if (MouseButtons == MouseButtons.Left)
    {
        // Write everything to a temp file.
        System.IO.File.WriteAllText(@"z:\Temp\helloWorld.rtf", richTextBox1.SelectedRtf);
        string[] filenames = { @"z:\Temp\helloWorld.rtf" };
        DataObject obj = new DataObject();
        // Set the drag drop data with the FileDrop format
        obj.SetData(DataFormats.FileDrop, filenames);
        // Start the drag drop effect
        DoDragDrop(obj, DragDropEffects.All);
    }
}
于 2013-01-12T14:12:34.267 に答える