Windowsフォームで四角を描くには?[2.0、3.0、3.5、3.5 SP1、VS 2008、C#、VB] − @IT

 

.NET TIPS

Windowsフォームで四角を描くには?[2.0、3.0、3.5、3.5 SP1、VS 2008、C#、VB]

デジタルアドバンテージ 一色 政彦
2008/10/02

 .NET Framework 3.5 SP1では、RectangleShapeコントロールが追加され、Windowsフォーム上に手軽に四角(=線による正方形もしくは長方形)が描けるようになった(Visual Basic PowerPacksに所属するコントロールとして提供されるが、デフォルトのVisual Studio 2008 SP1環境の「C#」でも利用可能)。

 本稿では、このRectangleShapeコントロールの利用方法を紹介する。なお、SP1を適用したVisual Studio 2008(以降、VS 2008)の使用を前提とする。

RectangleShapeコントロールの利用方法

 RectangleShapeコントロールを使用するには、VS 2008のIDEのWindowsフォーム・デザイナを表示した状態で[ツールボックス]の[Visual Basic PowerPacks]タブを開き、その中にある[RectangleShape]コントロールをフォーム上にドラッグ&ドロップする。これにより、次の画面のようにフォーム上に四角(=RectangleShapeコントロール)が配置される。

 後は、フォーム上に配置されたRectangleShapeコントロール(Microsoft.VisualBasic.PowerPacks名前空間)の四角の真ん中をつかんでドラッグ&ドロップで移動させたり、四隅や上下左右の中央をつかんでドラッグ&ドロップで拡大/縮小させたりすればよい。

 もちろん、次の画面のように[プロパティ]ウィンドウで位置(Location)やサイズ(Size)を指定してもよい。例えば正方形にしたい場合は、サイズ指定の方が便利だ。

四角の線をカスタマイズする方法

 RectangleShapeコントロールではいくつかの線種(=四角の種類)が(BorderStyleプロパティで)用意されている。具体的には以下のとおり(この線種は、TIPS:Windowsフォームで直線を描くには?で提供されているものと同じである)。

 これらの線種は[プロパティ]ウィンドウの[BorderStyle]プロパティで指定できる。さらに、次の画面のように[BorderWidth]プロパティで線の太さを変更したり、[BorderColor]プロパティで線の色を変えたりすることも可能だ。

四角の角を丸める方法

 四角の角に丸みを持たせることもできる。これには、次の画面のように、[CornerRadius]プロパティを指定すればよい。

四角の塗りつぶしとそのパターン

 当然ながらRectangleShapeコントロールの四角内を塗りつぶすこともできる。その際の色は、FillColorプロパティで設定できる。

 また、その塗りつぶし方のパターンも(FillStyleプロパティで)55種類が用意されている。具体的には次の表のとおりだ。なお、この表の例ではFillColorプロパティに「ControlText」が設定されいるため、塗りつぶしの色は「黒」になっている。

 なお、FillStyleプロパティが「Transparent」(透明)の場合、BackStyleプロパティに「Opaque」(不透明)を設定すれば、背景色(BackColorプロパティの値)が表示されるようになる。

塗りつぶしのグラデーションとそのパターン

 FillColorプロパティで色を設定できることは説明したが、この色をグラデーションにすることもできる。これには、FillGradientStyleプロパティをデフォルトの「None」からほかの値に変更すればよい。FillGradientStyleプロパティに指定できる値は次の表のとおり(このグラデーション・パターンも「TIPS:Windowsフォームで円を描くには?」で提供されているものと同じであるため、下の表ではOvalShapeコントロールによるグラデーション・パターン例をそのまま転載している)。

 FillColorプロパティに設定された色から、FillGradientColorプロパティに設定された色へグラデーションが行われる。上の表のサンプルでは、FillColorプロパティに「Orange」を、FillGradientColorプロパティに「Yellow」を設定している。次の画面はその際の画面キャプチャだ。

 なお、FillStyleプロパティには必ず「Solid」を指定する必要がある。これ以外の塗りつぶしパターンとの組み合わせはできない。

四角内の背景に画像を設定する方法

 以上で説明してきた塗りつぶしのほかに、背景画像を設定することもできる。これには、BackgroundImageプロパティを設定すればよい。画像の表示パターンも選択可能で、これはBackgroundImageLayoutプロパティで指定できる。

 BackgroundImageLayoutプロパティに指定できる値は次の表のとおり。

 上の表のサンプルを見れば分かるが、背景色やグラデーションを設定している場合は、画像の後ろにその色が表示される。背景色を表示したくない場合は、BackStyleプロパティに「Transparent」を設定すればよい。また、グラデーションを表示したくない場合は、FillStyleプロパティに「Transparent」を設定すればよい。

RectangleShapeコントロールの注意点

 最後に1つだけ注意点を挙げておく。RectangleShapeコントロールを利用したアプリケーションを実行するには、コンピュータに「Microsoft.VisualBasic.PowerPacks.Vs」というアセンブリ(.dllファイル)が必要となる。このアセンブリをインストール方法については、「TIPS:Windowsフォームで直線を描くには?」の「LineShapeコントロールの注意点」の項を参照してほしい。End of Article

利用可能バージョン:.NET Framework 2.0
利用可能バージョン:.NET Framework 3.0
利用可能バージョン:.NET Framework 3.5
利用可能バージョン:.NET Framework 3.5 SP1
カテゴリ:Windowsフォーム 処理対象:RectangleShapeコントロール
使用ライブラリ:RectangleShapeコントロール(Microsoft.VisualBasic.PowerPacks名前空間)
使用ライブラリ:Graphicsクラス(System.Drawing名前空間)
使用ライブラリ:Point型(System.Drawing名前空間)
使用ライブラリ:Size型(System.Drawing名前空間)
関連TIPS:Windowsフォームで直線を描くには?
関連TIPS:Windowsフォームで円を描くには?



TechTargetジャパン