私は、派手なカスタム コントロールを必要とするアプリケーションに取り組んでいます。.net Control クラスからの継承は、さまざまな問題を引き起こし、時間が経つにつれて事態を難しくしています。ここでは詳細には触れませんが、これらの問題のいくつかを回避するために、独自の軽量制御アーキテクチャを作成しています。うまく機能していますが、アーキテクチャにドラッグ アンド ドロップ機能を追加する必要があります。
これまでに思いついた方法はすべて、面倒でエラーが発生しやすいようです。私はさまざまな方法で .net Control クラスを模倣しており、.net リフレクターを使用して大きなメリットを得ていますが、ドラッグ イベント (DragDrop、DragEnter、DragLeave) を発生させる方法を理解するのに問題があります。
これらのイベントを発生させるきれいな方法が思い浮かびません。誰にもアイデアはありますか?
これまでのところ、IDropTarget インターフェイスを実装し、イベントが発生することを期待するのが最善の方法です。彼らはしない。
@tamberg: 私はその記事を読みましたが、実際には私が探しているものではありません (ありがとうございます)。私の問題は、イベント システムの実装方法がわからないことです。たとえば、データ オブジェクトがカスタム コントロール クラスにドラッグされていることをどのように知ることができますか? これらのイベント (DragOver、DragDrop など) を発生させるにはどうすればよいですか?
この例のすべてのコントロールは System.Windows.Forms.Control から継承していますが、これは私が回避しようとしているものです。