私の意図は、コンストラクターのモードパラメーターに応じて、LabelまたはTextFieldのように動作するLabelOrTextUserControlを作成することでした。UserControlにはTextプロパティがあり、LabelとTextFieldが含まれていますが、一度に表示できるのは両方の1つだけです。したがって、どのアプリケーションソースでも、ソースコードを変更せずにすべてのラベルとすべてのTextFieldをLabelOrText UserControlに置き換えることができます...(もちろん、Textプロパティは表示されている内部コントロールに委任されるだけでなく、FontプロパティとBackColorプロパティと他のすべてのプロパティは、表示されている内部コントロールに委任されます...)
これは、DragOverイベントとDragDropイベントが期待どおりに機能しないことを除いて、正常に機能します。
-> LabelOrText1.DragDrop +=myDDHandlerはLabel1.DragDrop+=myDDHandlerのように機能する必要があります
-> LabelOrText1.DragOver +=myDOHandlerはLabel1.DragOver+=myDOHandlerのように機能する必要があります
と
->マウスを使用した内側のラベルのDragOverアクションは、myDOHandler(o、e)を呼び出す必要があります
->マウスを使用した内側のラベルでのDragDropアクションは、myDDHandler(o、e)を呼び出す必要があります
そのため、アプリケーションのソースコードでラベルコントロールを私のLabelOrTextUserControlに置き換えるのは本当に簡単です。
ドラッグイベントを内部コントロールからUserControlを介して透過的にルーティングする方法に関するアイデアは高く評価されます。