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/09/11

 .NET Framework 3.5 SP1では、OvalShapeコントロールが追加され、フォーム上に円(=線による「円」もしくは「だ円」)が描けるようになった(Visual Basic PowerPacksに所属するコントロールとして提供されるが、デフォルトのVisual Studio 2008 SP1環境の「C#」でも利用可能)。本稿では、このOvalShapeコントロールの利用方法を紹介する。なお、SP1を適用したVisual Studio 2008(以降、VS 2008)の使用を前提とする。

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

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

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

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

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

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

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

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

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

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

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

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

 FillColorプロパティで色を設定できることは説明したが、この色をグラデーションにすることもできる。これには、FillGradientStyleプロパティをデフォルトの「None」からほかの値に変更すればよい。FillGradientStyleプロパティに指定できる値は次の表のとおり。

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

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

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

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

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

OvalShapeコントロールの注意点

 最後に1つだけ注意点を挙げておく。OvalShapeコントロールを利用したアプリケーションを実するには、コンピュータに「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フォーム 処理対象:OvalShapeコントロール
使用ライブラリ:OvalShapeコントロール(Microsoft.VisualBasic.PowerPacks名前空間)
使用ライブラリ:Graphicsクラス(System.Drawing名前空間)
使用ライブラリ:Point型(System.Drawing名前空間)
使用ライブラリ:Size型(System.Drawing名前空間)
関連TIPS:TIPS:Windowsフォームで直線を描くには?



TechTargetジャパン

Insider.NET 記事ランキング

本日 月間