|
.NET TIPS コントロールのメンバ変数を自動生成させないようにするには?[VS 2005のみ、C#、VB]デジタルアドバンテージ 遠藤 孝信2006/07/21 |
![]() |
|
|
|
Visual Studio .NETやVisual Studio 2005でWindowsアプリケーションを作成する場合、フォームにコントロール(あるいはコンポーネント)を配置すると、そのコントロールをコードから操作するためのメンバ変数が自動的に作成される。
しかし配置したすべてのコントロールに関してメンバ変数が必要であるとは限らない。中にはプロパティ・ウィンドウでプロパティを設定したり、イベント・ハンドラを追加したりするものの、コードからは一切参照しないようなコントロールもあり得る。
Visual Studio 2005では、そのようなコントロールに関してメンバ変数を自動生成させないようにできる。これにはプロパティ・ウィンドウで、そのコントロールのGenerateMemberプロパティをFalseに設定すればよい(デフォルトはTrue)。この設定によりメンバ変数は自動生成されなくなり、IntelliSenseの一覧にも表示されなくなる。
自動生成されるコードのGenerateMemberプロパティ設定による違い
次のコードは、フォームに2つのButtonコントロール(Button1とButton2)を配置し、Button2のGenerateMemberプロパティをFalseに設定した場合の、Form1.Designer.cs(VBの場合はForm1.Designer.vb)の内容である(このファイルはVisual Studio 2005のデザイナにより自動生成され、通常、開発者が手を触れる必要はない)。
| ||
| 2つのButtonコントロールを配置した場合のForm1.Designer.cs(Form1.Designer.vb)の内容(上:C#、下:VB) | ||
| 2つのButtonコントロールのうち、Button2の方はGenerateMemberプロパティをFalseに設定に設定している。 |
GenerateMemberプロパティをFalseに設定した「Button2」はメンバ変数が生成されず、InitializeComponentメソッド内でローカル変数としてのみ宣言されているのが確認できる。一方、「Button1」はForm1クラスのメンバ変数として宣言されており、このクラスは部分クラスであるため、Form1.cs(VBの場合はForm1.vb)で記述されているForm1クラスからもそれを参照できる。
なお、GenerateMemberプロパティをTrueに設定している場合には、自動生成されるメンバ変数のアクセス修飾子をModifiersプロパティで指定できる。デフォルトはPrivate(VBの場合はFriend)である。![]()
| 利用可能バージョン:.NET Framework 2.0のみ カテゴリ:Visual Studio 2005 処理対象:IDE |
| 「.NET TIPS」 |
TechTargetジャパン
- 新人プログラマーのためのInsider.NETの歩き方 2012 (2012/5/22)
晴れて.NETプログラマーとなる新人が効率的に開発技術を習得するには? 大量にある記事群の中から新人が読むべきお勧めを厳選して紹介 - jQuery MobileでJavaScriptプログラミング (2012/5/17)
jQuery Mobileは手軽なだけでなく、JavaScriptのAPIも充実しており、独自機能の実装もできる。今回は「グローバル設定」と「イベント」を解説 - Windows上で開発するための開発環境構築入門 (2012/5/16)
Windowsを使ってチームで開発している? なのにサーバOSを設定・運用した経験がない? そうなら、今すぐ学ぼう - 「コントラクト」でアプリのサンドボックスを乗り越える! (2012/5/11)
Metroスタイル・アプリはサンドボックスの中で動作する。それを乗り越えてほかのアプリと連携する仕組み「コントラクト」を解説
|
|
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -


