VB .net コントロールのプロパティ設定方法

このQ&Aのポイント
  • VB .net コントロールのプロパティ設定方法について解説します。
  • プロパティウインドウで設定する方法とコード内で設定する方法について比較します。
  • 動的なコントロール配置やプロパティ変更の必要がある場合はコード内で操作しますが、初期設定や変更の少ないコントロールについてはどちらでも同じように設定できます。
回答を見る
  • ベストアンサー

VB .net コントロールのプロパティ設定方法

Visual Basic 2010を勉強しています。 フォームに貼り付けたコントロールのプロパティの設定についてですが、 今までは、貼り付けた後にプロパティウインドウで直接いじっていました。 (Text、Font、Imageなど...) ですが、知人が書いたコードを見ていると、コードの中で設定しているようなのです。 プロパティウインドウで設定した方が、視覚的にも確認しながら設定できるのでそうしていたのですが、コード内で設定するのと違いはあるのでしょうか?(パフォーマンスやコードの見やすさなど...) 動的にコントロールを配置したい時や、プロパティを変更したい場合にはコード内で操作しますが、初期設定やラベル等の変更することがないようなコントロールに関しては、どちらでも同じような気がするのですが... 実際に皆さんがどうされているのかも気になり、質問させて頂きました。 以上、何卒よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • MARU4812
  • ベストアンサー率43% (196/452)
回答No.2

私は、デフォルト設定から変更する場合は、主にコードで設定しています。 ただ、デザイナで変更しても、InitializeComponent 内に自動でコードが 書かれます。そういった意味では、プロパティウインドウで設定しても 自分でコードを書かないだけで、コードで設定しているとも言えます。 ところが、この自動で書かれているコードには独自のルールがあるようで、 プロパティのデフォルト値と同じであると省略されたり、コードに書かれる コントロールの順も不定な部分があります。また、開発環境の解像度などの 影響を受けて、プロパティ値が自動調整される事があります。 そういった諸々の事情から、企業で開発するプロジェクトでの保守性や、 別プロジェクトへの再利用性に劣ります。 自前のコードで書いてあると、そこが自動で変更される事は無い(実行時に 調整される事はあっても)ので、意図して値を変更した事が明確に履歴管理 でき、また、そのコードで1回十分にテストしておけば、そのまま安心して 他プロジェクトに流用できます。また、複数プロジェクトで、どのプロパティ を流用して、どのプロパティは流用しなかったか(つまり、どの機能を実装し、 どの機能は実装しなかったか)といった差分比較も簡単になります。 少し特殊な事例としては、画面上に規則正しくコントロールが並んでいる時に その位置や初期値を関数で設定した事があります。一度設定するだけなら デザイナ上で設定しても手間は変わらないか、むしろ関数化するほうが時間が 掛かるかもしれませんが、何度も調整したり、変更が予想される場合は 少しの変更で調整できて便利でした。 以上のような経験から、 デザイナ上で調整するのは、位置と、タブ順・コントロール名くらいで、 他のプロパティは基本的には自前のコードで設定するようになりました。

ASA_Bass_Yu
質問者

お礼

とても丁寧なご回答ありがとうございました! コントロールプロパティをコードで記述する必要性、理由がよく分かりました! 何事も保守性・生産性を高める為の手間を惜しむなということですねっ! 精進します!

その他の回答 (1)

回答No.1

・規約上、コードのみで状態を確認する為、コードでプロパティを記述している。  ⇒この場合、Location、Sizeなど、全てのプロパティがコード上で再定義されていないと   おかしいはずですが。 ・コピペできるから。 このいずれかじゃないでしょうか。 個人的には、ビジネスロジックを確認する際の邪魔になるので嫌いです。

ASA_Bass_Yu
質問者

お礼

お早いご回答ありがとうございました! お礼が遅れ申し訳ございません... やはり多数の意見として、コードに記述した方が良いという方が多いみたいですね... 保守性を考えれば当然ということですね(汗)

関連するQ&A

  • [VB6.0]フォーム上に配置したコントロールのフォントサイズが変えられない

    はじめまして。 VB6.0のアプリケーションウィザードを使用してフォームをいくつか作りました。 ウィザード終了後、これらのフォーム上に配置されたラベルなどのfontプロパティ を操作してフォントサイズを変えたいのです。フォームのデザイン上はフォントサ イズを変えることが出来るのですが、実行すると、"コントロールのfontプロパティ のfontサイズ"ではなく、"フォームのfontプロパティのfontサイズ"で統一されて しまいます。つまり、コントロール毎の値は無視されて、フォームの値で統一され てしまうのです。 exe形式にコンパイルしても同じでした。どこかしらのプロパティをいじるのだと 思うのですが、どなたかわかる方はいらっしゃいますか? よろしくお願いします。 (環境)Windows98SE+VB6.0+SP5.0

  • 【VB2005】コントロールのサイズ自動取得

    現在、画面の大きさにより、ラベル、テキストボックス等の コントロールを動的に配置してまして、 画面サイズを適当に変えると、 コントロールの大きさが自動で変更されるのですが、 ボタンを押して、新たにコントロールを配置したときに、 画面が大きい画面なのに、自分で決めた値をそのままコントロールにプロパティを代入して作るために、 画面にあわないコントロールサイズになります。 倍率が判らないために、うまく今の画面にマッチしたコントロールの プロパティ(大きさ、フォント)が設定できません。 どういう方法で自動取得のコントロールを追加できるか、 お知恵を貸してください。

  • VBのコントロールについて

    VB6で教えてください。 VBのコードを書くメインウィンドウの右端にプロジェクトウィンドウとかプロパティウィンドウとかフォームレイアウトウィンドウとかありますが、あのフローティングウィンドウは何と言うオブジェクト(コントロール?、コンテナ?)なのでしょうか? 要は、ああいったマウスで任意にサイズを変更できるようなのをつけて、そこにタブコントロールを載せたいと思っています。よろしくお願いします。

  • カスタムコントロール作ってます(VB.NET)。VB.Net にVB.6のActiveX作成時にあったプロパティページ作成ができないようですが

    タイトルどうりです。VBNETのカスタムコントロールでデザインモードにおけるフォームつまりプロパティページやビジュアルにプロパティボックスから設定できるようにしたいのですが、どうしたらできるでしょうか?VB6ではできたのですが、(Activexコントロール)。 よろしくお願いします。

  • ユーザーフォームのプロパティをVBAで設定したい

    いつも楽しく勉強させていただいております。 Excelのユーザーフォームを使い始めたところです。 コントロールのプロパティの設定を細かいVBAで行いたいのですが、方法がわかりません。 たとえばラベルの位置をそろえたいので 黒いラベル2.Left = 黒いラベル1.Left 黒いラベル3.Left = 黒いラベル1.Left といったコードを書いてUserForm_Initialize()で実行してみたのですが、フォームを閉じると元の値に戻っています。 どうすれば黒いラベル2と黒いラベル3の左端を黒いラベル1と同じにできますか。

  • 【VB 2005】継承したコントロールにプロパティを追加するには?

    System.Windows.Forms.Labelを継承して 背景や、フォントを設定することは出来るのですが これをプロパティを使用して個別に設定する方法を探しています。 例えば LabelSizeというプロパティを作成し Small、Mediam、Largeから選択された 値によってコントロールの大きさを変えたいと思っています。 よろしくお願いします。

  • ユーザーコントロールのプロパティについて

    こんにちは、palbanです。 グリッドを使用したユーザーコントロールを作成し そのグリッドに文字が出力されるようプロパティを 作成しました。 そしてそのコントロールの作成したプロパティに コード内で値を設定しても全く文字がでてきません。 プロパティウィンドウで設定すると正常に文字が 出てきます。また、標準でついているプロパティを コード内で使用しても正常に値が入ります。 なんとか作成したプロパティもコード内で使用したい のですが、ご存知の方ご教授願いします。

  • ラベルに「コントロールソース」を設定することは不可能でしょうか?

    単票形式のフォームのレコードソースに紐付くコントロールソースを ラベルに設定したいのですができません。 ハイパーリンクをテキストボックスではなく ラベル上に表示したいです。 テキストボックスのプロパティには「コントロールソース」があるのですが ラベルに「コントロールソース」はありません。 設定することは不可能でしょうか? VBAでも可能なら教えてください。 よろしくお願いします。

  • VB2005 コントロールの背景を透過

    フォームにバックグラウンドイメージを設定しているのですが その上にグループボックスやラベルを貼り付けたら、フォームのイメージが隠れてしまいます。 VB6はコントロールに背景を透過にするプロパティがあったので探してみたのですが、見当たりません。 おそらくVB2005でも簡単に透過設定できると思うのですが… グループボックスとラベルを透過に設定する簡単な方法はありますでしょうか? (コントロールの継承になってくる?) また、これはおそらく無理だと思うのですが ピクチャーボックスで表示されている画像の透過部分にも フォームの背景イメージを表示させる、ということは可能でしょうか? よろしくお願い致します。

  • ラベルの文字列の長さが変わったときに、ラベル位置を自動で変更する方法

    ラベルの文字列の長さが変わったときに、ラベル位置を自動で変更する方法 環境:Visual Studio 2008 (C#)、Windows 7 Professional (x64) フォーム上にラベルを配置し、AutoSizeをTrue、AnchorをRightに設定すると、ラベルはフォームの右端に位置するように自動で位置を変更してくれます。 しかし、ラベルの内容を今より長い文字列に設定すると、ラベルの内容はフォームの右端をはみ出してしまい、ラベル全体に対してフォームの右端になるように配置してくれません。 いい方法がございましたら、お教えください。 どうぞよろしくお願いいたします。

専門家に質問してみよう