行き当たりばたりで作ったプログラムの問題
この前のエントリ「明日で夏休みもおしまいなわけで。」に、カスタムコントロールのリスト状にするのに、PanelのControlsプロパティにAddすれば良いと書いたけれど、だめだこりゃ。
というのも、PanelのControlsプロパティにカスタムコントロールを558個追加したとき、以下の例外が発生した。
System.ComponentModel.Win32Exception はハンドルされませんでした。
Message="ウィンドウのハンドルを作成中にエラーが発生しました。"
Source="System.Windows.Forms"
ErrorCode=-2147467259
NativeErrorCode=1158
フォームにカスタムコントロールを貼り付けられる上限ってのがある模様。まあ、考えてみれば当たり前だ。条件によりその数は変わるのだろうけど・・・。
んで、他の方法を検討する。
要は、カスタムコントロールを表示出来てスクロールできるパネルが欲しいだけなので、表示できる範囲のカスタムコントロールだけを用意して、縦スクロールバーはVScrollBarコントロールを使って制御する。カスタムコントロール内に入れる情報は、別途、ArrayListなりで保存して、スクロールのイベントにより、表示位置を移動させる。
こんな感じ。
これで作ってみよう。
« 読了:神無き世界の英雄伝 2 | トップページ | 今日届いた本 »
コメント