連載
» 2009年01月28日 05時00分 公開

.NET TIPS:Windowsフォームで直線コントロールを配置するには?

[一色政彦,デジタルアドバンテージ]
.NET TIPS
Insider.NET


「.NET TIPS」のインデックス

連載目次

 従来のVB 6(Visual Basic 6.0)ではLineコントロール(直線を描くためのコントロール)が存在していた。しかし、.NETではこのようなコントロールは用意されていない。そこで本稿では、既存の.NETのコントロールを応用して、直線に見せ掛けるテクニックを紹介する。

.NETコントロールで直線に見せるテクニック

 Lineコントロールの代わりに使用する.NETのコントロールは、Labelコントロールである。

 これをフォーム上に配置して、まず次の設定を行う。

  • Textプロパティを空にする
  • AutoSizeプロパティをfalseに設定する

 さらにコントロールのプロパティを次のように設定する。

(1)立体的な水平線の場合には……

  • SizeプロパティのHeightプロパティを「2」に設定する
  • BorderStyleプロパティを「Fixed3D」に設定する

(2) 平面的な水平線の場合には……

  • SizeプロパティのHeightプロパティを「1」に設定する
  • BorderStyleプロパティを「FixedSingle」に設定する

(3) 立体的な垂直線の場合には……

  • SizeプロパティのWidthプロパティを「2」に設定する
  • BorderStyleプロパティを「Fixed3D」に設定する

(4)平面的な垂直線の場合には……

  • SizeプロパティのWidthプロパティを「1」に設定する
  • BorderStyleプロパティを「FixedSingle」に設定する

 例えば(2)の設定をコードで記述する場合には次のようになる。

this.label1.Text = "";
this.label1.Size = new System.Drawing.Size(240, 1);
this.label1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;

Me.label1.Text = ""
Me.label1.Size = New System.Drawing.Size(240, 1)
Me.label1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle

Labelコントロールを立体的な水平線に見せるサンプル・コード(上:C#、下:VB.NET)

 これらの実装を手動でコーディングするのではなく、Visual Studio .NETのWindowsフォーム・デザイナを使って行っているのが、次の画面である。

Visual Studio .NETによる水平線、垂直線の実装 Visual Studio .NETによる水平線、垂直線の実装
Windowsフォーム・デザイナでWindowsフォーム上にLabelコントロールを配置し、[プロパティ]ウィンドウを使ってプロパティ設定をしていくだけで、直線を表現するコントロールを作成できる。なお、この画面例では示されていないが、Textプロパティの設定値は空にすること。
  (1)立体的な水平線。
  (2)平面的な水平線。
  (3)立体的な垂直線。
  (4)平面的な垂直線。
  (5)Sizeプロパティの設定を行う。
  (6)BorderStyleプロパティの設定を行う。

 なお、このような代替手段ではなく、[ツールボックス]ウィンドウ上に配置可能な独自の直線コントロールを自作したい場合には、カスタム・コントロール(もしくはユーザー・コントロール)を作成するしかない。

カテゴリ:Windowsフォーム 処理対象:Labelコントロール
使用ライブラリ:Labelコントロール(System.Windows.Forms名前空間)


■更新履歴

【2009/01/28】(Visual Studio 2005以降では自動的にAutoSizeプロパティがtrueとなるため)AutoSizeプロパティをfalseに設定しなければならないことに関する記述を追記しました。

【2005/06/10】初版公開。


「.NET TIPS」のインデックス

.NET TIPS

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。