- - PR -
Formに配置できるコントロール数には限界がある?
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-02-20 13:49
すいません。
囚人 様からも返信いただいていましたね。 見落としてしまいました。 私もなぜその中途半端な数なのだろうと思っていましたが、おそらくya 様からご指摘いただいた「デスクトップアプリケーションヒープ」の都合ではないでしょうかね。 | ||||||||
|
投稿日時: 2006-02-20 13:56
かにかにさんのソースを一部流用させて頂きますね。
まあ、メモリ不足だったら「ハンドルの作成中に〜」はありえないかな。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||
|
投稿日時: 2006-02-20 14:06
[quote]
かにかにさんの書き込み (2006-02-20 13:40) より: 返信ありがとうございます。 じゃんぬねっと 様 すいません。スタックトレースという言葉は聞いたことがあり意味もなんとなく分かるのですが、VB.NETのスタックトレースの取り方というのが分からずググっていました。...が、やり方が依然として分かりません。 もし、可能でしたらスタックトレースの取り方を教えていただけるでしょうか? [quote] 例外が発生した時点で、"呼び出し履歴"ウィンドウを見てください。例外メッセージそのものにもスタックとレース情報が含まれているので、そちらを診てもOKです。 例えばAccessやOffice製品では大量のコントロールを表示する為にウィンドウズ標準のコントロールを使いません。市販の帳票ツールや、入力ツール、グリッドツールでも同様です。 素直にグリッド系のツールを利用するか、大量の標準コントロールを使わないように実装するか、大量のコントロールを表示しなくても良いように画面デザインを変更する必要があるでしょう。 | ||||||||
|
投稿日時: 2006-02-20 14:40
返答ありがとうございます。
じゃんぬねっと 様 ご教授いただいたコードを実行してみたところ、MessageBoxすら表示できないようなエラーのようです。今回は特殊な例なのかもしれませんね。Debug.WriteLineなどでは表示できました。 取得の仕方が分かって勉強になりました。 甕星 様 今回は『大量のコントロールを表示しなくても良いように画面デザインを変更する』方向で設計を変えようと思います。ありがとうございました。 | ||||||||
|
投稿日時: 2006-02-20 15:00
ありがちなハマりパターンですね ![]() 実際に、同時に利用可能なコントロールの数には制限があるため、何らかの工夫をしなくてはならないです。 例えば、Excel や一般的な Grid では各セル項目が編集できますが、あれはすべてのセル分のエディットコンとトールを持っているわけではありません。 セルが編集状態になった時に、隠し持っていた1つ(か、内部的な事情によってそれ以上持っているかもしれませんが)のエディットコントロールをその位置に移動して、項目の入力をさせています。 サブ明細用のコントロールを「表示用」と「編集用」の2つを作成し、これらを使い分ければいいかもしれないですね。 | ||||||||
|
投稿日時: 2006-02-20 17:01
ものすっごい雑談だけど、WebBrowserコントロールとかWPFを使うという手はあります。
この辺になるとコントロール(フォーム)はuser32リソースからはだいぶ開放されるので。 WPFはさすがに環境がないのでWebBrowserに100000個 <input type="text"> を張ってみましたけど普通に動きますね。読み込みには時間がかかるけど。 |