6

ああ、私は立ち往生しています!

カスタム作業ウィンドウを開くExcelアドインを作成しています(これはデータ分析ツールタイプのものです)。生産性を高めるために、ユーザーが1つ以上のファイルダイアログを経由するのではなく、ファイルや電子メールの添付ファイルなどのオブジェクトをその作業ウィンドウの一部にドラッグして処理できるようにしたいと思います。

問題は、Excelがカスタム作業ウィンドウとそれに含まれるコントロールのドラッグアンドドロッププロパティを完全に上書きしているように見えることです。そのため、ファイルを作業ウィンドウにドロップすると、Excelは単にスプレッドシートとしてファイルを開こうとします(サポートされているファイルタイプです)、DragDropイベントは発生しません。

ドロップイベントが作業ウィンドウに送信されるようにExcelにこれを停止させる方法はありますか?

4

1 に答える 1

4

わかりました、私は方法を見つけました。Excelがすべてのドラッグイベント自体を処理するため、DragDropイベントは発生しませんが、DragEnterイベント発生します。発生すると、実際のドロップターゲットの上にモードレスフォームを開くことができます。このフォームは、DragDropイベントを受け取ることができます(そして、DragLeaveイベントでそれ自体を強制終了します)。ちょっとしたハックですが、うまく機能しているようです。

于 2011-04-18T08:56:15.963 に答える