- PR -

Panelにユーザコントロールを追加するとシステムエラーが発生

1
投稿者投稿内容
マーサ
ベテラン
会議室デビュー日: 2004/11/26
投稿数: 87
投稿日時: 2006-09-21 19:10
いつもお世話になっております。
件名についてご存知の方いらっしゃいましたら、ご教示願います。
詳細は下に記します。

環境:
VB.NET2003、WinXP

基本動作:
1.画面に入力項目(TextBox)が複数(約30項目)存在します。
  →ポップアップで入力、登録ボタンで確定。
2.1で登録される都度、同一画面のPanelにまとめて表示しています。
  →入力がある項目のみ最下段にまとめて表示。
 ※厳密には、Panelに追加しているのはラベルとテキストをセットにしたクラスです。

エラー動作:
上記1の入力文字数をMAX(ここでは、32767文字)入力し、登録します。
MAX入力を複数(15〜18程度)項目繰り返すとシステムエラーが発生します。
※この時、Panelに後の方の項目が表示されない。

入力文字数が500文字とか少ない場合はエラーになることは無いのですが、
大量に文字入力を行うとエラーが発生してしまいます。


コード:

 〜略〜
pnlDispItems.Controls.clear()
For i = 0 To InputData.Length - 1
If InputData(i) <> "" Then
ucDispItem(i) = New uclDispItem
ucDispItem(i).lblTokkiJikou.Text = InputDataのタイトル(i)
ucDispItem(i).txtTokkiJikou.Text = InputDataのテキスト(i)
Me.pnlDispItems.Controls.Add(ucDispItem(i))   ←エラー発生箇所
ucDispItem(i).Location = New System.Drawing.Point(0, ucDispItem(i).Height * ViewCnt)
ViewCnt = ViewCnt + 1
End If
End For
 〜略〜




エラー内容:
ウィンドウのハンドルを作成中にエラーが発生しました。

StackTrace
at System.Windows.Forms.NativeWindow.CreateHandle(CreateParams cp)
at System.Windows.Forms.Control.CreateHandle()
at System.Windows.Forms.TextBoxBase.CreateHandle()
at System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
at System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
at System.Windows.Forms.Control.CreateControl()
at System.Windows.Forms.ControlCollection.Add(Control value)


何故、現実的?な入力文字数だとエラーが発生しないで、大量な文字数を入力するとエラーになるのか不明で行き詰っています。

不足している情報等ありましたら、ご指摘下さい。
よろしくお願いします。

[一部記述ミスを修正]

[ メッセージ編集済み 編集者: マーサ 編集日時 2006-09-21 19:12 ]
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-09-21 19:19
おそらく、リソース不足でしょうね。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
マーサ
ベテラン
会議室デビュー日: 2004/11/26
投稿数: 87
投稿日時: 2006-09-21 22:10
じゃんぬねっとさん、迅速な回答ありがとうございます。

むむむ、やはりそう言うオチになるのですか・・・。
スペックの良いPCで検証してみます。


PS
まだ誤植が・・・
code
If InputDataのテキスト(i) <> "" Then
/code

1

スキルアップ/キャリアアップ(JOB@IT)