- - PR -
ドラッグアンドドロップ操作が上手くいかない
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2007-11-04 14:47
皆様
いつもお世話になっております 現在、Windows Vista(64bit)、VS2005(32bit) C#で開発をしています。 Formとrichtextboxしかないアプリに、 WordPadのテキストを選択し、ドラッグアンドドロップすると、 richtextboxに、Wordpadのテキストがコピーされる、 という処理を入れようとしています。 以下のサイトにその対応方法が書いてあったので、サイトの通りに作ってみたのですが、 うんともすんともいいません。 http://msdn2.microsoft.com/ja-jp/library/fkw1hc6t.aspx 作成したイベントハンドラにブレークポイントを置き、ドラッグアンドドロップしても、 ブレークポイントにひっかからないので、根本的に何かがおかしいと思うのですが…。 以下に、Form1.csのソースを示します。 何かおかしな点があったらご指摘頂けないでしょうか…。 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; namespace WindowsApplication2 { public partial class Form1 : Form { public Form1() { InitializeComponent(); this.AllowDrop = true; this.richTextBox1.AllowDrop = true; this.richTextBox1.DragEnter += new System.Windows.Forms.DragEventHandler(this.richTextBox1_DragEnter); this.richTextBox1.DragDrop += new System.Windows.Forms.DragEventHandler(this.richTextBox1_DragDrop); } private void richTextBox1_DragDrop(object sender, System.Windows.Forms.DragEventArgs e) { int i; String s; // Get start position to drop the text. i = richTextBox1.SelectionStart; s = richTextBox1.Text.Substring(i); richTextBox1.Text = richTextBox1.Text.Substring(0, i); // Drop the text on to the RichTextBox. richTextBox1.Text = richTextBox1.Text + e.Data.GetData(DataFormats.Text).ToString(); richTextBox1.Text = richTextBox1.Text + s; } private void richTextBox1_DragEnter(object sender, System.Windows.Forms.DragEventArgs e) { if (e.Data.GetDataPresent(DataFormats.Text)) e.Effect = DragDropEffects.Copy; else e.Effect = DragDropEffects.None; } } } _________________ In the middle of every difficulty lies opportunity --Albert Einstein [ メッセージ編集済み 編集者: くくぽぽ 編集日時 2007-11-04 14:50 ] [ メッセージ編集済み 編集者: くくぽぽ 編集日時 2007-11-04 14:50 ] |
|
投稿日時: 2007-11-04 15:40
自己レスです。
色々と調査して分かったのですが、 別にrichtextboxのallowdropをfalseにした状態でも、同じ richtextbox内でのドラッグアンドドロップはできるみたいです。 MSDNの説明とどうも違う様な…? でも、別にallowdropをfalseにしたからといって、ドラッグアンドドロップができなく なるという説明はどこにもないので、問題ないのかもしれませんが…。 しかし、MSDNのサイトにある、 別プロセス(wordpad)からのドラッグアンドドロップは相変わらずできません。 いったいどうなっているのでしょうか??? |
|
投稿日時: 2007-11-04 15:44
更なる自己レスです。
どうやらVS2005から実行しているから駄目な様です。 VS2005が作成したexeを直接たたいた後で、 WordPadに入力した文字列をドラッグアンドドロップすると、 ちゃんとコピーできました。 うぅむ、どういうことでしょうか…。 とりあえず、したいことはできることが分かりましたので、 本件はクローズとして頂ければと存じます。 (もし何かご存知の方は、つっこんで頂ければと存じます) |
1