.NET TIPS スクロールバー付きでPictureBoxコントロールに画像に表示するには?[C#、VB]デジタルアドバンテージ 遠藤 孝信2008/01/24 |
|
|
PictureBoxコントロール(System.Windows.Forms名前空間)に画像を表示する場合、特に画像がPictureBoxコントロールのサイズよりも大きい場合には、PictureBoxコントロールのSizeModeプロパティにより以下のような表示方法がある。
| ||||||||||||
PictureBoxコントロールのSizeModeプロパティに設定可能な値 | ||||||||||||
ここでは画像がPictureBoxコントロールのサイズよりも大きい場合の表示結果を示している。なお、これらの値はPictureBoxSizeMode列挙体(System.Windows.Forms名前空間)で定義されている。 |
このようにいくつかの表示方法が用意されているが、固定領域内にスクロールバー付きで画像を表示するような機能はPictureBoxコントロールには用意されていない。本稿ではこれを実現するための簡単な方法を紹介する。
パネルを使ったPictureBoxコントロールのスクロール
PictureBoxコントロールによりスクロールバー付きで画像を表示するには、PictureBoxコントロールをPanelコントロールと組み合わせることにより可能だ。以下にVisual Studio利用時の手順を示す。
画像を表示したい部分にPanelコントロールを配置してサイズを調整する
Panelコントロールの中にPictureBoxコントロールを配置する
これによりPictureBoxコントロールはPanelコントロールの子コントロールとなる。このためPictureBoxコントロールはPanelコントロールの領域部分にしか表示されなくなる(Panelコントロールにより表示がクリッピングされる)。
PictureBoxコントロールのLocationプロパティを「(0, 0)」に設定する。
PictureBoxコントロールのSizeModeプロパティを「AutoSize」に設定する
これにより画像のサイズに合わせてPictureBoxコントロールのサイズが変化するが、 に記述したように、Panelコントロール以外の部分にはPictureBoxコントロールは表示されない。
PanelコントロールのAutoScrollプロパティを「True」に設定する
これによりPanelコントロールの中に配置されたコントロール(本稿の場合ではPictureBoxコントロール)がPanelコントロールのサイズよりも大きい場合に、自動的にスクロールバーが表示されるようになる。
次の画面は以上の手順によりPictureBoxコントロールとPanelコントロールと配置したところだ(Visual Studio 2005)。
Panelコントロール内に配置したPictureBoxコントロール |
PanelコントロールのAutoScrollプロパティを「True」に、PictureBoxコントロールのSizeModeプロパティを「AutoSize」に設定している。 |
この時点ですでにスクロールバーが表示され、実際に画像(=PictureBoxコントロール)をスクロールさせることができる。
カテゴリ:Windowsフォーム 処理対象:PictureBoxコントロール カテゴリ:Windowsフォーム 処理対象:Panelコントロール 使用ライブラリ:PictureBoxSizeMode列挙体(System.Windows.Forms名前空間) |
|
「.NET TIPS」 |
- 第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用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
|
|