.NET TIPS

フォーム全体へのドッキング状態でサイズ変更つまみを表示するには?[C#、VB]

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

 Windowsフォーム・アプリケーションで、フォームのサイズをユーザーが自由に変更できるようにしているとき(具体的にはFormBorderStyleプロパティを「Sizable」(デフォルト値)や「SizableToolWindow」にしているとき)、サイズ変更可能なことが視覚的にすぐ分かるように、そのフォームの右下につまみ(以降、サイズ・グリップ)を表示できる。

●Windowsフォームでサイズ・グリップを表示する方法

 サイズ・グリップを表示するには、Windowsフォーム・デザイナでフォームを選択した状態で、次の画面のように、[プロパティ]ウィンドウで[SizeGripStyle]プロパティに「Show」を設定するだけである(なお、「Auto」(デフォルト値)を設定すると、フォームのShowDialogメソッドでダイアログとしてフォームを表示した場合のみ、サイズ・グリップが表示され、通常は表示されない)。

Windowsフォームでサイズ・グリップを表示する設定

 もしくはコードで記述する場合は、次のように記述すればよい。

this.SizeGripStyle = SizeGripStyle.Show;
Me.SizeGripStyle = SizeGripStyle.Show
Windowsフォームでサイズ・グリップを表示するコード(上:C#、下:VB)
thisオブジェクトやMeオブジェクトはフォームである。

●フォーム全体にコントロールがドッキングしている場合にサイズ・グリップを表示する方法

 しかし、Panelコントロールなどをフォーム全体にドッキングさせた場合(つまり、コントロールのDocプロパティに「Fill」を設定した場合)、そのコントロールの背面にサイズ・グリップが隠れてしまう。次の画面はその例だ。

Panelコントロールによりサイズ・グリップが隠れてしまっている例

 これを回避してサイズ・グリップを表示する最も簡単な方法は、StatusStripコントロール(.NET 1.xではStatusBarコントロール)を配置することである。

 具体的には、[ツールボックス]から[StatusStrip]コントロールをWindowsフォーム・デザイナ上にドラッグ&ドロップで配置するだけである。配置する際には、Panelコントロールなどの上にStatusStripコントロールが重ならないように注意してほしい(参考:「TIPS:ToolStrip/StatusStripコントロールがほかのコントロールに重なるのを解消するには?」)。

 次の画面は、StatusStripコントロールを配置してサイズ・グリップを表示する例である。

StatusStripコントロールによりサイズ・グリップを表示する例

 StatusStripコントロールでサイズ・グリップを表示するには、[プロパティ]ウィンドウで[SizingGrip]プロパティを「True」(デフォルト値)に設定しておく必要がある。

 また、フォーム全体にドッキングしているコントロール内で、独自にサイズ・グリップを描画する方法もある。これについては後日公開予定のTIPSで紹介する。StatusStrip/StatusBarコントロールを使った場合、その分、余計な領域ができてしまうので、通常の開発では独自に描画する方がお勧めだ。End of Article

カテゴリ:Windowsフォーム 処理対象:StatusStripコントロール
カテゴリ:Windowsフォーム 処理対象:StatusBarコントロール
使用ライブラリ:StatusStripコントロール(System.Windows.Forms名前空間)
使用ライブラリ:StatusBarコントロール(System.Windows.Forms名前空間)
関連TIPS:ToolStrip/StatusStripコントロールがほかのコントロールに重なるのを解消するには?

この記事と関連性の高い別の.NET TIPS
独自にサイズ・グリップを描画するには?
ToolStrip/StatusStripコントロールがほかのコントロールに重なるのを解消するには?
Windowsフォームで簡単に画像を表示するには?
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 記事ランキング

本日 月間