C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[6]: IEでドラッグしたテキストをTextBox等にドロップしたい


(過去ログ 79 を表示中)

[トピック内 10 記事 (1 - 10 表示)]  << 0 >>

■46862 / inTopicNo.1)  IEでドラッグしたテキストをTextBox等にドロップしたい
  
□投稿者/ オーディス (1回)-(2010/02/12(Fri) 16:31:50)

分類:[VB.NET/VB2005 以降] 

VB2008を使用しています。
IEに表示したページのテキストを選択してドラッグし、これをWindowsフォームにTextBoxやRichTextBoxにドロップしたいのですが、
TextBox上ではドラッグ時のマウスカーソルの形が禁止マークになっていてドロップできません。
IEの代わりにWebBrowserにHTMLページを表示し、同様のことを行ってもドロップできません。
何が原因なのでしょうか?
最終的には、WebBrowserに表示させたページのテキストをドロップできればいいと考えています。
お知恵を拝借願えませんでしょうか?
よろしくお願いいたします。
引用返信 編集キー/
■46864 / inTopicNo.2)  Re[1]: IEでドラッグしたテキストをTextBox等にドロップしたい
□投稿者/ Hongliang (561回)-(2010/02/12(Fri) 16:52:05)
TextBox の AllowDrop を True にしていないとか?
引用返信 編集キー/
■46865 / inTopicNo.3)  Re[1]: IEでドラッグしたテキストをTextBox等にドロップしたい
□投稿者/ .SHO (1204回)-(2010/02/12(Fri) 16:52:33)
No46862 (オーディス さん) に返信

IEやWebBrowser側が、テキストのドラッグに対応していないので無理です。

引用返信 編集キー/
■46866 / inTopicNo.4)  Re[1]: IEでドラッグしたテキストをTextBox等にドロップしたい
□投稿者/ 魔界の仮面弁士 (1493回)-(2010/02/12(Fri) 17:10:21)
No46862 (オーディス さん) に返信
> IEに表示したページのテキストを選択してドラッグし、これをWindowsフォームにTextBoxやRichTextBoxにドロップしたいのですが、
> TextBox上ではドラッグ時のマウスカーソルの形が禁止マークになっていてドロップできません。

(1) TextBox の AllowDrop プロパティは True にしてありますか?
 これを True にしておかないと、ドロップ可能なコントロールとして認識されません。

(2) TextBox の DragEnter イベントで、e.Effect を None(ドロップ不可)のまま返却していませんか?
 もし、そもそもイベントを処理していない場合、e.Effect は None 扱いとなります。

(3) TextBox の DragDrop イベントで、ドロップされたデータを受け取り、
 それを TextBox.SelectedText (あるいは TextBox.Text) にセットしていますか?
引用返信 編集キー/
■46967 / inTopicNo.5)  Re[2]: IEでドラッグしたテキストをTextBox等にドロップしたい
□投稿者/ オーディス (2回)-(2010/02/15(Mon) 12:47:30)
No46866 (魔界の仮面弁士 さん) に返信
魔界の仮面弁士さま、ご回答ありがとうございました。
上記試してみたところ、WebBrowserに表示されたテキストをドラッグし、TextBoxにドロップすることができました。

しかし、WebBrowserからRichTextBoxへのドロップがうまくいきません。
TextBoxの時の対応と同じように、以下のようにしてみました。

(1)RichTextBoxのAllowDropプロパティをTrueにする。
 (デザイナのプロパティウィンドウ内には、RichTextBoxのAllowDropプロパティがありませんでしたので
 コード上でRichTextBox1.AllowDrop = Trueとしましたが、このプロパティは有効なのでしょうか?)
(2)RichTextBoxのDragEnterイベントで、e.Effect = DragDropEffects.Copyとする。
(3)RichTextBoxのDragDropイベントで、ドラッグしたデータを反映させる。
 ここでは、とりあえず以下のようにする。
 sender.Text = e.Data.GetData(GetType(System.String))

RichTextBoxの場合は、どのように対処すればよいのでしょうか?
ちなみに、RichTextBoxにドロップしたいデータは、HTMLではなく、純粋にテキストデータのみです。
引用返信 編集キー/
■46996 / inTopicNo.6)  Re[2]: IEでドラッグしたテキストをTextBox等にドロップしたい
□投稿者/ オーディス (3回)-(2010/02/15(Mon) 21:42:10)
色々と調べてみたのですが、以下の掲示板に、WebBrowserで選択されたテキストを取得する方法について
魔界の仮面弁士さまの書き込みがありました。

http://homepage1.nifty.com/MADIA/vb/vb_bbs2/200610/200610_06100044.html

これを利用しない手はないと思いますが、どうしてもドラッグ&ドロップでRichTextBoxにWebBrowserで選択されたテキストを
ドラッグ&ドロップ(あるいは、ユーザからそのように見えるように)したいのです。
ただ、
・WebBrowserからドラッグしている情報を、WebBrowserで選択されたテキスト情報に差し替えることができるのか?
・上記が実現できたとしても、WebBrowserにはMouseUp/DownやMouseMoveイベントがないので、どのタイミングで上記を実現できるのか?
・そもそも、なぜTextBoxではドロップできて、RichTextBoxではドロップできないのか?
という疑問が残ります。
どうぞよろしくお願いいたします。
引用返信 編集キー/
■47014 / inTopicNo.7)  Re[3]: IEでドラッグしたテキストをTextBox等にドロップしたい
□投稿者/ nori (84回)-(2010/02/16(Tue) 10:43:34)
つDragOver
引用返信 編集キー/
■47017 / inTopicNo.8)  Re[4]: IEでドラッグしたテキストをTextBox等にドロップしたい
□投稿者/ オーディス (4回)-(2010/02/16(Tue) 11:00:29)
No47014 (nori さん) に返信
> つDragOver
noriさま、ありがとうございます。
ただ、DragOverは何のコントロールのイベントでしょうか?
WebBrowserにこのイベントハンドラを設定しようとすると、
「イベント DragOver は、この ActiveX コントロールでは有効ではありません。」という実行エラーが出ます。
引用返信 編集キー/
■47019 / inTopicNo.9)  Re[5]: IEでドラッグしたテキストをTextBox等にドロップしたい
□投稿者/ nori (85回)-(2010/02/16(Tue) 11:57:52)
>DragOverは何のコントロールのイベントでしょうか?
RichTextBoxです。

>(2)RichTextBoxのDragEnterイベントで、e.Effect = DragDropEffects.Copyとする
これと一緒の事をDragOverでも行う。
引用返信 編集キー/
■47021 / inTopicNo.10)  Re[6]: IEでドラッグしたテキストをTextBox等にドロップしたい
□投稿者/ オーディス (5回)-(2010/02/16(Tue) 12:42:47)
No47019 (nori さん) に返信
> >DragOverは何のコントロールのイベントでしょうか?
> RichTextBoxです。
>
> >(2)RichTextBoxのDragEnterイベントで、e.Effect = DragDropEffects.Copyとする
> これと一緒の事をDragOverでも行う。
noriさま、ありがとうございました!!!!
RichTextBoxのDragOverイベントで、e.Effect = DragDropEffects.Copyとしたところ、
WebBrowser上のドラッグしたテキストを、RichTextBox上にテキストをドロップすることができました!!!!!
コードのページではRichTextBoxのイベント一覧プルダウンにDragOverがなかったので、
このイベントが使えるかどうか分からなかったのですが、これですべて解決です。
もう、感謝、感謝です。
また、ヒントを頂きました皆様にも感謝いたします。
ありがとうございました。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -