2013-02-02 1 views
7

VS2012デザイナーのコントロールをカットアンドペーストするときに、イベントハンドラの割り当てを維持する方法はありますか?たとえば、イベントスタブにコードを含むLoadイベントを持つグラフコントロールがあります。グラフコントロールを切り取って貼り付けると、Loadイベントはプロパティエディタにイベントハンドラの割り当てがあると表示されなくなります。 Loadイベントの隣にあるドロップダウンボックスを使用して、Loadイベントの既存のイベントハンドラコードを再選択する必要があります(割り当てをやり直してください)。イベントハンドラの割り当てを失うことなくコントロールをカットアンドペーストする方法はありますか?VS2012 C#プロジェクトでWinFormsコントロールをカットアンドペーストするときのイベントハンドラの割り当てを保持しますか?

Delphiでは、私はちょうどカットアンドペーストコントロール自由とイベントハンドラの割り当ては、コントロールがフォームまたはフレームに貼り付けたとき、彼らが保持されたように、クリップボードのテキストの一部であった可能性があります。私はVisual Studio 2012とC#プロジェクトで同じことをする方法があることを願っています。

+0

何か。あなたは+ペーストだけをカットして完全に別のフォームに移動します。まれな事故によって適切なイベントハンドラしか持たない。あなたはちょうどそれを間違って使用しているように聞こえる、代わりにコントロールをドラッグします。 –

+2

@HansPassant - 頻繁に使用されるケースは、いくつかの大きなコントロールをタブ付き(ページ)コントロール上のさまざまなタブに移動することです。 Dockプロパティの設定をリセットして、すべてを適切にドラッグ&ドロップしなければならないのは難しいことです。少なくとも私のために、タブ付きコントロールをフォームにドロップし、必要なコントロールを切り取って別のページ(タブ)に貼り付けるほうがはるかに簡単です。 VSがそのように動作しない場合、私はそれを取得しますが、私は私がしたいことをする方法があることを望んでいました。 –

+0

もう1つのユースケースは、リファクタリング中にWinFormから新しいUserControlにコントロールの一部を移動する場合です。それを切り取って貼り付けるだけなら、イベントハンドラをもう一度作成しなければなりません(そしてそのコードをコピーしてください...)。 – sventevit

答えて

2

Visual Studioデザイナを使用してコントロールを切り取りまたはコピーすると、コントロールのプロパティのみがコピーされます。これは設計によるもので、私の意見では正当なものです。コントロールと、同じイベントハンドラーをすべてコピーまたはコピーした場合は、ほとんどの場合直感的に直感的です。

コントロールが同じフォームに残っているようです。この場合、ほとんどの場合、コントロールをドラッグして配置するだけで十分です。イベントを再割り当てする

+0

このシナリオの例を考えてみましょう:Dockプロパティが "Fill"に設定されているフォームにSplitContainerがあります。これにはいくつかの子コントロールが含まれており、その多くにはイベントハンドラが付属しています。後で私のフォームの一番下にStatusStripを置くことにしました。あなたのフォームの一番下までドックするように設定することはできません。 SplitContainerは引き続きStatusStripの塗りつぶしを使用します(明らかに下部にドッキングされていますが)が実際にSplitContainerの一部を隠すことになります。その周りの唯一のSplitContainerをカットし、それをペーストすることです。 – dotNET

0

一つの方法は、以下の通りである:貼り付けたコントロールの

  • ダブルクリックして、それは名前でイベントを作成しますように:

    button1_Click_1(...) 
    
  • 今の機能を変更します名前を元の名前button1_Clickに変更すると、IDEは機能の重複に関する警告を表示し、[OK]をクリックして、すでに作成した機能を削除します。この質問についての奇妙な

関連する問題