(vb.net)リッチテキストボックスへのドラッグアンドドロップによるファイルの貼り付け

このQ&Aのポイント
  • vb.netのリッチテキストボックスへのドラッグアンドドロップで、ファイルそのものを貼り付けたい
  • vb6.0では簡単に実装できるが、vb.netではうまく行かない
  • 現状はAllowDropをTrueに設定したが、テキストやビットマップの貼り付けしかできない
回答を見る
  • ベストアンサー

(vb.net)リッチテキストボックスへのドラッグアンドドロップによるファイルの貼り付け

こん@@は、どうしても出来なくて困ってます。 vb.netにおいて、リッチテキストボックスへのドラッグアンドドロップで、ファイルそのものを貼り付けたいのですが、どうしても出来ません。 ワードパッドや、outlookの文字入力部分にファイルをドラッグしたらアイコン状態でファイルが張り付きますよね? このような動作をvb.netのRichTextBoxにて実装したいのです。(ダブルクリックしたらそのファイルを開けれる状態で貼り付けたい) vb6.0だとRichTextBoxを作成するだけでその辺のことは最初から出来るのですが、vb.netだとうまく行きません。 現状AllowDropとかはTrueにもちろんしています。 MSDN Library 等調べてもtextやビットマップを貼り付けると言うような情報しか得られませんでした。 どなたか、わかる方がいらっしゃいましたら教えてください。 お願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • kumaken5
  • ベストアンサー率36% (23/63)
回答No.1

WindowsフォームのRichTextBoxコントロールはOLEオブジェクトの埋め込みには対応していないので、残念ながらお望みのことはできません。 もしVB6をお持ちなのでしたら、VB6のRichTextBoxコントロールをVB.NETで使うことによって、VB6でやっていたのと同じように、OLEオブジェクトの埋め込みができます。 手順はこんな感じです。 1. VB6のRichTextBoxコントロール(RichTx32.ocx)を、VB.NETのマシンにコピーして、Regsvr32.exe を使って登録する。 2. VB.NETを起動して、ツールボックスの上で右クリックして、"アイテムの追加と削除"を選択 3. [ツールボックスのカスタマイズ]ダイアログの"COMコンポーネント"のところに"Microsoft Rich Textbox Control"が追加されているので、チェックを入れて、OKボタンをクリック 上記の手順で、VB6のRichTextBoxコントロールがVB.NETのツールボックスに追加されます。あとはふつうにフォームに貼り付けてプログラミングしてください。 なお、VB6とVB.NETが共存しているマシンでしたら1の手順は要りません。

miyapi-
質問者

お礼

ありがとうござます、上記方法でドラッグによるファイル貼り付けが出来るようになりました。 [RichTx32.ocx]は以前VB6を入れていたためか解りませんが、既に[\\system32]内にありましたので、それを利用いたしました。 6.0 → .netの乗り換えで今まで出来ていたことが、普通に出来なくなってたりして、互換性がいまいと言う気がするのですが、その辺ってMSさんはどう考えてるのでしょうね?(駄文) とにかくありがとうございました。 VB6のRichTextBoxコントロールを使用することによって、コンテキストメニュー部分の記述等今までのままではどうもダメみたいですが....(記述方法の違いがぁ....) 続けてプログラミングしていきたいと思います。

関連するQ&A

  • ドラッグアンドドロップでファイルを読み込む方法を教えて下さい。

    一応いま手元にあるのはVB.NET2003なのですが、 これを使って複数のファイルから指定した行の内容をコピーして出力するプログラムを作りたいと考えています。 そのためには 1.ファイルをドラッグアンドドロップしてファイルの内容を読み込む 2.読み込んだ内容を順番に出力する機能が必要になります。 それでドラッグアンドドロップによりファイルを読み込む記述を探しているのですが、 http://www.atmarkit.co.jp/fdotnet/dotnettips/676dragdrop/dragdrop.html ここにあるように、 1.フォームのAllowDropプロパティをTrueに設定する 2.フォームのDragEnterイベント・ハンドラを記述する 3.フォームのDragDropイベント・ハンドラを記述する ということを順番に行えば良いわけですが、1番はもちろん分かりますが、2番と3番がどうして良いのか分かりません。 本屋で一通りVBの本を見てみたのですが、どの本にもドラッグアンドドロップについて書かれてある本はありませんでした。 検索などすると、確かにDragEnter、DragDropに関する記述は見つかるのですが、難しくてどうしても理解出来ません。 どなたか易しく教えて頂けないでしょうか? よろしくお願い致します。

  • .netのAjaxでドラッグアンドドロップ

    AtlasがAjaxControlToolkitに包含されるようになったときいておりますが、 AjaxControlToolkitを使って、web上でドラッグアンドドロップを実装しようとしています。 間違えないようにコメントしておきますが、 ここで申しております、ドラッグアンドドロップは コントロールをマウスで移動できるようにすることです。 iGoogleのようなコントロールの移動です。 しかしながら、なかなか参考サイトなどがみつからず、 実装できておりません。 asp.net2.0でドラッグアンドドロップの実装方法はどうしたらいいのでしょうか?

  • C# リッチテキストボックスへのドラッグ&ドロップ

    C#でリッチテキストボックスにファイルをドラッグ&ドロップすることでファイルそのものを張り付けることは可能でしょうか?(張り付けたファイルはデスクトップ上の物と同様にダブルクリックで開ける) また、可能ならどのようにすればできるのか教えていただけると幸いです。

  • ドラッグ&ドロップからの取得

    VBで作ったソフトのアイコンにテキストファイルをドラッグ&ドロップするだけでVBの中のTextboxにテキストファイルの内容を表示させたいのですがその方法が分かりません…。 やはりWindowsのAPIとかいうのを使うのでしょうか? どなたか分かる方おられたら方法を教えて下さい。 お願いします。

  • VB6でのドラッグ&ドロップについてです

    VB6でのことなんですが、リネームツールを作ろうと思って色々やってるのですが、うまくいきません。 フォルダをドラッグ&ドロップをして、 text1にフォルダの中のファイル名を表示して、text2にファイル名をコピーしてリネーム、というようなものを作りたいと考えています。 フォルダをドラッグ&ドロップして表示されるのが、そのフォルダのフルパスになってしまいます。 ドラッグ&ドロップしたフォルダの中のファイル名だけを表示する方法はどうすればいいのでしょうか? よろしくお願いします。

  • OLE ドラッグアンドドロップの代わりに

    いつもお世話になっています。 VBに、OLEドラッグアンドドロップというのがVBでありますよね。 これと同じようなことを、Commandなどをクリックしたとき発生させたいのですが、どうすればよいでしょう。 具体的に言うと、これで実現できるようなデータの受け渡しをしたいのです。ドラッグアンドドロップをさせるのは面倒なので、なんとかデータをボタンクリック一つで実現させたいのです。 クリップボード経由を使うという手もあるかもしれませんが、これを使うと、特殊なデータは渡せないようですし…… つまり、ドラッグアンドドロップで受け渡されるDataObjectを、クリックだけで別のフォームやリッチテキストボックスなどに受け渡すというか貼り付けられるようにしたいのです。 DataObjectと似たようなものがあればいいんですが、見つかりませんし…… どうすればいいのか全く分かりません。些細な情報でも良いので、どうか教えてください。 よろしくお願いします。(ちなみに、VB6です)

  • ドラッグ&ドロップでファイルをアップロードしたい

    質問内容はNo.1389359で質問されている方と同じなのですが、その実装方法が分からず困っています。 やりたいのは、ブラウザにファイルをドラッグ&ドロップすることでファイルをアップロードしたい、ということです。 No.1389359では「ActiveXでできそう」という結論になったようです。このActiveXとはActiveXドキュメントのことだと思いますが、Visual Studio 2003 を調べてみてもそもそもActiveXドキュメントという言葉がでてきません(VB6の頃にはあったのですが今ではどうなってしまったのでしょうかね(^^;)。 ActiveX以外の方法でも構わないのですが、実装経験のある方はいらっしゃいませんか?よろしくお願いします。

  • ドラッグ&ドロップについて

    VB.NETについて質問です。 ListViewでドラッグ&ドロップするコーディングをしているのですが、 外からListViewへのドラッグ&ドロップ(データ取り込み)、ListViewから外へのドラッグ&ドロップ(データ出力)、ListView内でのドラッグ&ドロップ(アイテム並べ替え)を区別する方法を教えて下さい。

  • ドラッグアンドドロップが出来ない

    数日前まで何気にドラッグアンドドロップで下書きした文章等を例えばFacebook等の投稿に使っていましたが、いきなり出来なくなりました。OSは「7」、Internet Explorerは「Version 10」です。コピーして貼り付ける事は可能ですが、ドラッグアンドドロップではドロップする際に黒い○に斜めの線が入り、落ちません。但し、試しにデスクトップ上に画像を一旦保存し、ドラックアンドドロップでゴミ箱へは移せますし、ハードディスク上でも、例えばドライヴCからDへの移動は出来ます。 スタートからプロパティ、カスタマイズと進み、「コンテキスト メニューと~」の「ドラックアンドドロップ」では、有効化するにチェックが入っています。 コントロールパネルから「マウス」へ、「クリックロックをオンにする」にはチェックは入っていません。 タスクバーから「タスクマネージャーの起動、というネット上で紹介されている方法も試しましたが、解決しませんでした。 マウスに不具合が有ると、線が引けないという情報も有ったので、Photosshop Elementsで線を引っ張ってみたり、「IMEパッド」で手書きもしてみましたが、問題なく線も引けます。 達人のお知恵拝借。

  • DragEnterイベントについて(VS2008、ドラッグ&ドロップ)

    VisualStudio2008 C# で開発をしています。 ListViewにエクスプローラーからファイルをドラッグ&ドロップしようとしているのですが、うまくできません。 いろいろと調べて下記の3点を抑えればできるのかと思っていますが、思ったように動きません。 ListViewのAllowDrop=True; DragEnterイベントでe.Effect = DragDropEffects.Copy; DragDropイベントでDropした後の処理 きちんと記述しているつもりですが、DragEnterイベントが発生しません。 ちなみに、同じListViewの要素をドラッグ&ドロップするとDragEnterイベントは発生するので、あくまで外部(エクスプローラーなど)からドラッグされたものが受け付けないようです。 何が原因なのでしょうか? ほかに設定などあるのでしょうか?

専門家に質問してみよう