2016-08-01 6 views
0

私は、thisチュートリアルに従い、Windowsフォームページの要素に名前を付けました。私が集めたものから、フォームはデザイナーフォーム上の要素の名前に基づいてメソッドを自動的に生成します。C#デザイナーフォームはフォームオブジェクトのメソッドを更新していませんか?

しかし、テキストボックスのほとんどは、ラベルをクリックしてEnterキーを押すとラベルがメソッド名を更新しますが、それらのうちのいくつかは依然としてデフォルト名を参照しています。

添付の画像では、「Option」という名前のラベルは「label3_clicked」のままです。

非常に高く評価されています。

Attached image of problem.

+1

将来、コントロールウィンドウの名前を変更した場合、 'control'の' event'を生成(登録)して 'そのコントロールの名前' + '_(アンダースコア)' + 'イベント名' '(rename)'既に生成されたイベント –

+0

イベントハンドラ(コントロールではなくメソッド)が作成されると、コントロールの名前を変更するだけで自動的に変更されることはありません: 'label3'と' label3_clicked'は完全に別のシンボルです。複数のコントロールに同じイベントハンドラを簡単にアタッチすることができます。しかし、ファイル内でイベントハンドラ( 'label3_clicked')の名前を手動で変更すると、VSはすべての発生を検索して名前を変更します。これを避けたい場合は、イベントを作成する前にコントロールの名前を*指定してください。 – Lou

答えて

0

Labelがlabel3であるときにクリックイベントハンドラメソッドを作成しました。これを修正するには、コード内のメソッド名とF2を強調表示します。これにより、メソッドの名前を変更(リファクタリング)し、フォームデザイナーも変更することができます。

あなたのオブジェクトに最初に名前をつけ、次にイベントハンドラメソッドを作成してください。すべてが良いはずです。

1

私は(何もすることができます)イベントの名前が自動的にコントロールの名前と一致するように更新された動作が発生することはありません。

これは、イベントの名前は何でもかまいません(label3.Clicked += Whatever_Click_Whateverまたはクリックパーツなしでも可能です)。コンパイラがチェックできる命名規則はありません。自動生成されたものにはデフォルトだけがあります。

コントロール名を変更するときに変更したくないカスタム名がある場合はどうなりますか?したがって、ここでは自動動作はありません。

this.Load += new System.EventHandler(this.Form1_Load); 

その後Right click => RenameまたはCtrl + R, Ctrl + Rと名前を変更します。

だから何を行うことができ、このようなイベントを見つけるForm1.Designer.csに行くです。これはフォームのコードでも変わります。