.NET TIPS Windowsフォームで直線を描くには?[2.0、3.0、3.5、VS 2008、C#、VB]デジタルアドバンテージ 一色 政彦2008/09/04 |
|
従来のVB6(Visual Basic 6.0)ではLineコントロール(=直線を描くためのコントロール)が存在していたが、.NET Frameworkでは、バージョン3.5まで、このようなコントロールが用意されていなかった(関連:「TIPS:Windowsフォームで直線コントロールを配置するには?」)。
しかしVisual Studio 2008 SP1(以降、VS 2008 SP1)に付属するVisual Basic PowerPacks 1.2では、LineShapeコントロールが追加され、素直に直線が描けるようになった(※C#でも利用可能)。本稿では、このLineShapeコントロールの利用方法を紹介する。
LineShapeコントロールの利用方法
LineShapeコントロールを使用するには、VS 2008 SP1のIDEのWindowsフォーム・デザイナを表示した状態で[ツールボックス]の[Visual Basic PowerPacks]タブを開き、その中にある[LineShape]コントロールをフォーム上にドラッグ&ドロップする。これにより、次の画面のようにフォーム上に直線(=LineShapeコントロール)が配置される。
後は、フォーム上に配置されたLineShapeコントロール(Microsoft.VisualBasic.PowerPacks名前空間)の両端をドラッグ&ドロップで移動させればよい。もちろん、次の画面のように[プロパティ]ウィンドウで両端の座標(X1、Y1、X2、Y2)を指定してもよい。水平や垂直にしたい場合は、座標指定の方が便利だ。
直線の位置は、上の画面で分かるように、X1/Y1/X2/Y2プロパティを使えばよいわけだが、コードとして記述する場合には、X1とY1はStartPointプロパティ、X2とY2はEndPointプロパティで、一括して設定できる。どちらのプロパティも、Point型(System.Drawing名前空間)の値で指定する。従って、例えば画面上部中央から画面左側中央に線を引きたい場合には次のようなコードになる。
|
||
StartPointプロパティとEndPointプロパティで座標を指定するサンプル・コード(上:C#、下:VB) | ||
「lineShape1」はLineShapeコントロールである。 |
また、LineShapeコントロールではいくつかの線種(=直線の種類)が(BorderStyleプロパティで)用意されている。具体的には以下のとおり。
このほかに「Custom」という線種が用意されているが、これは独自の線を書きたい場合に使うもの。これを選択した場合は、OnPaintメソッドをオーバーライドして、そこでGraphicsクラス(System.Drawing名前空間)のDrawLineメソッドなどを使って自分で線を描く必要がある。
これらの線種は[プロパティ]ウィンドウの[BorderStyle]プロパティで指定できる。さらに、次の画面のように[BorderWidth]プロパティで線の太さを変更することも可能だ。
LineShapeコントロールの注意点
VS 2008 SP1のIDEでLineShapeコントロールを追加すると、自動的に「Microsoft.VisualBasic.PowerPacks.Vs」というアセンブリ(.dllファイル)への参照が追加される。このアセンブリは、VS 2008 SP1をインストールした一般的な環境では以下の場所に配置されている。
C:¥Program Files¥Common Files¥Microsoft Shared¥
Visual Basic Power Packs¥1.1
しかし、このアセンブリは.NET Framework 3.5 SP1をインストールしただけでは配置されないので注意が必要だ。このアセンブリをインストールするには、「Visual Basic PowerPacks 1.2 セットアップ」などをクライアント環境で実行する必要がある。このセットアップは、Visual Basic PowerPacks関連のアセンブリをGAC(グローバル・アセンブリ・キャッシュ)にインストールするためのもので、ClickOnceや.MSIセットアップ(=Windowsインストーラ配置)の必須コンポーネントとして提供されているので(※ただしVS 2008 SP1以降)、これを利用すればよい。
もしくは、その必須コンポーネントのモジュールをクライアントに配布して手動で実行してもよいだろう。このセットアップ・モジュールは、筆者の環境では以下の場所に配置されている。
C:¥Program Files¥Microsoft SDKs¥Windows¥v6.0A¥
Bootstrapper¥Packages¥VBPowerPacks¥ja
以上の説明のように、LineShapeコントロールを使う場合は別途Visual Basic PowerPacks 1.2のインストールが必要となるため、水平線/垂直線程度の直線を描きたいだけであれば、「TIPS:Windowsフォームで直線コントロールを配置するには?」の手法を採用した方が展開が楽である。
なお、前述のアセンブリがインストールされている環境であれば、VS 2008 SP1を使って.NET Framework 2.0や3.0向けにビルドしたアプリケーションでも問題なく動作するようだ。
利用可能バージョン:.NET Framework 2.0 利用可能バージョン:.NET Framework 3.0 利用可能バージョン:.NET Framework 3.5 カテゴリ:Windowsフォーム 処理対象:LineShapeコントロール 使用ライブラリ:LineShapeコントロール(Microsoft.VisualBasic.PowerPacks名前空間) 使用ライブラリ:Graphicsクラス(System.Drawing名前空間) 使用ライブラリ:Point型(System.Drawing名前空間) 関連TIPS:Windowsフォームで直線コントロールを配置するには? |
TechTargetジャパン
Insider.NET 記事ランキング
本日 月間