- ベストアンサー
コントロールについての質問
みなさんこんにちは。 WinNT(SP6)・VB6.0(SP5)の環境で開発を行っているのですが、以下のような現象が起きていて困っています。 ・一部のコントロールで、オブジェクト名を変えようとすると『このフォームにこれ以上のコントロールを作成できません。』というエラーメッセージが表示される ・新規にコントロールを追加しようとしても同様のメッセージが表示される どうしてもオブジェクト名が変えられなくて困っています。ちなみにコントロールの数は数え切れないほどあり(少なくても100個以上)、その辺に問題があるのかとも思いますが・・。 どんな情報でもいいので、どなたか教えていただけませんか?よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
そんなにコントロール数があったら、追加できなくなってしまうでしょうね(^^; リソースもたくさん必要としますので何かしらの改善策を考えた方がよいと思います。 以下のような改善策が考えられます。 1)複数のコントロールがセットになった市販のカスタムコントロールを使用する。 文化オリエント「Input Man」 http://www.boc.co.jp/support/database/P1_45.htm コムラッド「Form Designer」 http://www.comrade.co.jp/ などを使用すれば、例えば、ラベルとテキストボックスが1つのコントロールとして扱われ、リソースを減らすことが可能となります。 また、文化オリエントの「Spread」、コムラッドの「PerfectGrid」等、表敬のコントロールを駆使してコントロールを減らすことも可能です。 2)フォームを分割する。 ウィザードなどによくある「次へ」のボタンを使って、フォームを複数に分割する。
その他の回答 (1)
- Kai_PG
- ベストアンサー率40% (2/5)
>ちなみにコントロールの数は数え切れないほどあり(少なくても100個以上)、その辺に問題があるのかとも思いますが・・。 これが原因じゃないでしょうか? NTなら、どれだけメモリを食ってるのかをすぐに確認できると思いますので、確認しながらコントロールを増やしてみると何か分かりませんかね? あと、どうしてそんなにもコントロールが必要なのですか? それが明確になれば、そこを減らす方向で考えたほうがいいように思います。たとえ、コントロールを増やすことができたとしても、実行するたびに負荷がかかることになり、よいソフトとは言えないのではないでしょうか? 同じ種類のコントロールは配列にする、とか、必要のないコントロールへのリンクをはずす、とか、そういう作業をもう少し進めてはいかがでしょうか?
補足
回答ありがとうございます。 >NTなら、どれだけメモリを食ってるのかをすぐに確認できると思いますので、確認しながらコントロールを増やしてみると何か分かりませんかね? メモリもチェックしてみたのですが、それほど影響はなさそうです。 >あと、どうしてそんなにもコントロールが必要なのですか? それが明確になれば、そこを減らす方向で考えたほうがいいように思います。たとえ、コントロールを増やすことができたとしても、実行するたびに負荷がかかることになり、よいソフトとは言えないのではないでしょうか? 現在、1つのフォーム上でSSTabを使用してデータ表示をしているのです。ですから、実際に表示されるのは多くても数十個といった感じで、それほど多くは感じません。今のところ、1つのフォーム上でタブを使用して表示させる方向で考えていますが・・。 確かに、デザイン画面ではコントロールがかなり多く感じます。やはりこれが原因になっているのでしょうか?
お礼
回答ありがとうございました。 やはり現状のままでは解決は難しいようですね。もう少しいろいろと試してみて、どうしても行き詰まるようであれば、是非参考にさせて頂きます。