.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コントロール)はコードのみにより作成することもできるが、このようにいったんフォーム上に配置した方が、フォーム・デザイナによるプロパティやイベントの設定ができるので便利だ。End of Article

カテゴリ:Windowsフォーム 処理対象:StatusBarコントロール
使用ライブラリ:StatusBarクラス(System.Windows.Forms名前空間)
使用ライブラリ:TrackBarクラス(System.Windows.Forms名前空間)
 
この記事と関連性の高い別の.NET TIPS
Windowsフォーム上のすべてのコントロールを列挙するには?
WindowsアプリケーションをWindows XPスタイルの外観にするには?
PictureBoxコントロール上に文字を表示するには?
コントロールに対するキー入力をフォームで処理するには?
Windowsフォームで簡単に画像を表示するには?
このリストは、(株)デジタルアドバンテージが開発した
自動関連記事探索システム Jigsaw(ジグソー) により自動抽出したものです。
generated by

「.NET TIPS」


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Insider.NET 記事ランキング

本日 月間