DOBON.NET DOBON.NETプログラミング掲示板過去ログ

C# コンボBOXについて

環境/言語:[XP C#]
分類:[.NET]

こんにちは!
コンボBOXについて教えて下さい。

コンボBOXが2つあります。
1つはプリンタ名を取得します
2つ目は1つ目で選択したプリンタの用紙サイズを取得します。
ここまではできるのですがプリンタ名を後、用紙サイズのコンボBOXで
用紙サイズを選ぼうとすると1行しか表示しません。
再度、選ぼうとすると8行表示します。
どうすれば最初から8行表示できるのでしょうか?
ちなみにMaxDropDownItemsを8に設定しても変化はありませんでした。

PrStCb_tb[1].Items.Clear();
PrinterSettings p = PrintDoc.PrinterSettings;
p.PrinterName = PrStCb_tb[0].Text;

// 用紙サイズを列挙
foreach(PaperSize paperSize in p.PaperSizes)
{
   PrStCb_tb[1].Items.Add(paperSize.PaperName);
}
いつも8行であるかどうかは別として...(^_^;

おかしいですね。
私の環境では特に問題なく全ての用紙サイズ名を返しますよ。
PrinterNameプロパティを設定した後、PrinterSettings.IsValidプロパティは
trueを返してきますか?

あ、用紙サイズが1つだけは表示してくれるんでしたっけ?
ありがとうございます。

> PrinterNameプロパティを設定した後、PrinterSettings.IsValidプロパティは
> trueを返してきますか?
返してきてます。

> あ、用紙サイズが1つだけは表示してくれるんでしたっけ?
用紙サイズはちゃんと取得して表示もしてくれます。
ただ1回目にコンボBOXをクリックするとリストが1行のみ表示されます。
2回目に同じコンボBOXをクリックすると8行表示されます。
1回目でもスクロールさせると2行目以降も表示はされます。

何か設定でもあるんでしょうか?
解決しました。
ここのサンプルで「コントロールの配列を作成する」を参考にしてたんですが
どうもMaxDropDownItemsを書くとMaxDropDownItemsの初期値が反映されないみたいです。
取り除くと正常に動作しました。

Sugi@ぱぱんぶぃびぃさん僕のミスに返信して下さってありがとうございました。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板