はじめに
ComboBox を使っていると、こんな悩みが出てきませんか?
- ドロップダウンを開くと、文字列が右で「…」と切れてしまう
- リストが長すぎて画面からはみ出してしまう
そんなときに調整したいのが、DropDownWidth と DropDownHeight です。
どちらもピクセル単位でドロップダウンリストのサイズを制御できるプロパティです。
DropDownWidth / DropDownHeight の役割
| プロパティ | 役割 | 影響する部分 |
|---|---|---|
DropDownWidth |
ドロップダウンリストの横幅(ピクセル)を指定する | ▼を押して開いた「リスト部分」の幅 |
DropDownHeight |
ドロップダウンリストの高さ(ピクセル)を指定する | ▼を押して開いた「リスト部分」の高さ |
💡 ポイント:
・コンボボックス本体の幅・高さとは別に、ドロップダウン部分だけを調整できます。
・長いテキストを見せたいときや、画面レイアウトの都合で高さを抑えたいときに使えます。
・コンボボックス本体の幅・高さとは別に、ドロップダウン部分だけを調整できます。
・長いテキストを見せたいときや、画面レイアウトの都合で高さを抑えたいときに使えます。
DropDownWidthプロパティの使い方
基本構文
// ドロップダウンの幅を 200 ピクセルに設定
comboBox1.DropDownWidth = 200;
コンボボックス本体が 120px しかなくても、ドロップダウンを 200px に広げることができます。
「選択欄は小さくていいけど、候補はしっかり見せたい」というときに便利です。
実用例:長いテキストの一覧
comboBox1.Items.AddRange(new[]
{
"001: 重要なお知らせ(長い説明文が続きます…)",
"002: 利用規約変更のお知らせ",
"003: システムメンテナンスのお知らせ(予定)"
});
// コンボボックス本体の幅はそのまま
comboBox1.Width = 150;
// ドロップダウンだけ横に広げる
comboBox1.DropDownWidth = 320;
このように、選択欄はコンパクトなまま、ドロップダウンを広くして
項目の全文が読めるようにできます。
DropDownHeightプロパティの使い方
基本構文
// ドロップダウンの高さを 150 ピクセルに設定
comboBox1.DropDownHeight = 150;
デフォルトでは、MaxDropDownItems と項目の高さから自動的に高さが決まります。
しかし、フォームの高さが限られている場合など、明示的に高さを制限したいことがあります。
事前準備:IntegralHeightをfalseにする
DropDownHeight を細かく効かせたいときは、IntegralHeight を false にしておくと確実です。
// 「行単位での高さ調整」を無効にしてピクセル指定を優先させる
comboBox1.IntegralHeight = false;
comboBox1.DropDownHeight = 150;
🔎 IntegralHeightとは?
true(既定)だと、項目の高さに合わせて「中途半端に切らない」高さになります。
false にすると、指定した DropDownHeight のピクセル値を優先します。
true(既定)だと、項目の高さに合わせて「中途半端に切らない」高さになります。
false にすると、指定した DropDownHeight のピクセル値を優先します。
MaxDropDownItemsとの違い・使い分け
| プロパティ | 指定単位 | 説明 |
|---|---|---|
MaxDropDownItems |
「行数」 | 同時に表示する最大項目数を指定。高さは項目の高さ × 行数 で決まる。 |
DropDownHeight |
「ピクセル」 | ドロップダウンの高さを直接ピクセルで指定。スクロールバー表示も含めて制御可能。 |
「何行見えるか」で調整したい → MaxDropDownItems
「画面レイアウトに合わせたピクセル高さ」で調整したい → DropDownHeight
という使い分けがおすすめです。
実用例:幅・高さをまとめて調整するフォーム
using System;
using System.Windows.Forms;
namespace ComboBoxDropDownSizeSample
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
comboBox1.Items.AddRange(new[]
{
"001: 東京本社",
"002: 大阪支社",
"003: 名古屋営業所",
"004: 福岡営業所",
"005: 札幌営業所",
"006: 仙台営業所",
"007: 広島営業所",
});
comboBox1.DropDownStyle = ComboBoxStyle.DropDownList;
// 幅と高さを調整
comboBox1.DropDownWidth = 250;
comboBox1.IntegralHeight = false;
comboBox1.DropDownHeight = 120; // 画面レイアウトに合わせた高さ
// フォームのレイアウト上、コンボボックス本体は小さめ
comboBox1.Width = 150;
}
}
}
このように設定すると、フォーム上ではコンパクトなコンボボックスとして配置しつつ、
ドロップダウンを開いたときだけ「見やすい幅・高さ」でリストが表示されます。
よくある注意点
- DropDownHeightが効かない?
→IntegralHeight = falseにしているか確認。 - 画面からはみ出す
→ 高さを欲張りすぎると、画面下にはみ出してしまうことがあります。
モニタ解像度やタスクバーの位置も考慮して、実機で確認しましょう。 - フォントサイズ変更の影響
→ フォントを大きくすると1行の高さも増えるので、DropDownHeightの調整が必要になる場合があります。 - Simpleスタイルでは意味がない
→DropDownStyle = Simpleの場合、リストは常時表示されるため、
DropDownWidth / DropDownHeight よりもWidth/Heightを調整します。
まとめ
DropDownWidth… ドロップダウンリストの幅(ピクセル)を指定し、長い文字列の見切れを防げる。DropDownHeight… ドロップダウンリストの高さ(ピクセル)を指定し、画面からのはみ出しや行数を抑えられる。IntegralHeightをfalseにすると、DropDownHeight が素直に効きやすい。MaxDropDownItemsは「行数で制御」、DropDownHeight は「ピクセルで制御」と覚えておくと整理しやすい。
Please follow and like us:

コメント