|
.NET TIPS
ステータスバー内にコントロールを配置するには?
デジタルアドバンテージ 遠藤 孝信
2005/04/29 |
|
|
Visual Studio .NET(以下、VS.NET)でWindowsアプリケーションを作成する場合、Windowsフォーム・デザイナ上では、ステータスバー・コントロール(StatusBarコントロール)内には別のコントロールを配置できない。しかし、コード・エディタを使ってコードを記述すれば、ステータスバー内にも別のコントロールを配置することができる。
以下の画面は、ステータスバー内にTrackBarコントロールを配置した例である。
|
ステータスバー内に配置されたTrackBarコントロール |
この画面例のようにステータスバー内にTrackBarコントロールを配置するには、以下のようにフォームのコンストラクタなどで、StatusBarコントロール(変数statusBar1)のControlsプロパティに対して、AddメソッドによりTrackBarコントロール(変数trackBar1)を追加すればよい(これによりTrackBarコントロールはStatusBarコントロールの子コントロールとなる)。
public Form1()
{
//
// Windows フォーム デザイナ サポートに必要です。
//
InitializeComponent();
//
// TODO: InitializeComponent 呼び出しの後に、コンストラクタ コードを追加してください。
//
trackBar1.Location = new Point(2, 2);
trackBar1.Size = new Size(statusBar1.Width * 4 / 5, statusBar1.Height - 4);
trackBar1.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
statusBar1.Controls.Add(trackBar1);
}
|
|
TrackBarコントロールをStatusBarコントロール内に配置するフォームのコンストラクタ(C#) |
Public Sub New()
MyBase.New()
' この呼び出しは Windows フォーム デザイナで必要です。
InitializeComponent()
' InitializeComponent() 呼び出しの後に初期化を追加します。
TrackBar1.Location = New Point(2, 2)
TrackBar1.Size = New Size(StatusBar1.Width * 4 / 5, StatusBar1.Height - 4)
TrackBar1.Anchor = AnchorStyles.Top Or AnchorStyles.Left Or AnchorStyles.Right
StatusBar1.Controls.Add(TrackBar1)
End Sub
|
|
TrackBarコントロールをStatusBarコントロール内に配置するフォームのコンストラクタ(VB.NET) |
このとき、追加するコントロールは全体がステータスバー内に収まるようにLocationプロパティやSizeプロパティ(あるいはこの2つをまとめて設定できるBoundsプロパティ)を設定しておく必要がある。また、ウィンドウのリサイズに従って自動的に横幅を変化させるためには、AnchorプロパティにAnchorStyles.Right値を追加してコントロールを右端に固定しておけばよい。
上記のコードをフォームのコンストラクタで記述するためには、新規作成したWindowsアプリケーションで、あらかじめフォーム上に「StatusBar」と「TrackBar」を配置しておく。
|
フォーム上に配置したStatusBarコントロールとTrackBarコントロール |
ここではTrackBarコントロールのTickStyleプロパティを「None」に設定して、目盛りを非表示にしている。 |
なお、この時点ではTrackBarコントロールはフォームの子コントロールとなるが、
statusBar1.Controls.Add(trackBar1);
のコードにより、実行時にはフォームのControlsプロパティから削除される(フォームの子コントロールではなくなる。この場合にはTrackBarコントロールの親コントロール(Parentプロパティ)にStatusBarコントロールを設定してもよい)。
コントロール(この場合にはTrackBarコントロール)はコードのみにより作成することもできるが、このようにいったんフォーム上に配置した方が、フォーム・デザイナによるプロパティやイベントの設定ができるので便利だ。
カテゴリ:Windowsフォーム 処理対象:StatusBarコントロール
使用ライブラリ:StatusBarクラス(System.Windows.Forms名前空間)
使用ライブラリ:TrackBarクラス(System.Windows.Forms名前空間) |
|
generated by
|
|
Insider.NET 記事ランキング
本日
月間