- ベストアンサー
コントロールについての質問
みなさんこんにちは。 WinNT(SP6)・VB6.0(SP5)の環境で開発を行っているのですが、以下のような現象が起きていて困っています。 ・一部のコントロールで、オブジェクト名を変えようとすると『このフォームにこれ以上のコントロールを作成できません。』というエラーメッセージが表示される ・新規にコントロールを追加しようとしても同様のメッセージが表示される どうしてもオブジェクト名が変えられなくて困っています。ちなみにコントロールの数は数え切れないほどあり(少なくても100個以上)、その辺に問題があるのかとも思いますが・・。 どんな情報でもいいので、どなたか教えていただけませんか?よろしくお願いします。
- ma-ki
- お礼率56% (9/16)
- Visual Basic
- 回答数2
- ありがとう数2
- みんなの回答 (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つのフォーム上でタブを使用して表示させる方向で考えていますが・・。 確かに、デザイン画面ではコントロールがかなり多く感じます。やはりこれが原因になっているのでしょうか?
関連するQ&A
- コントロールの作成する数について
フォーム上にコントロールを追加しようとすると以下のメッセージが表示されます。 「これ以上このフォームにコントロールを作成することができません。」 対応策として既存のコントロールを削除して追加しようとしたのですが、同じメッセージがでました。 なにかいい方法はないでしょうか? 1つのフォームに追加できるコントロールは最大244?までと聞いたことがあるのですが、コントロールの数を数える方法は1つ1つ見るしかないですよね? よろしくお願い致します。
- ベストアンサー
- Visual Basic
- ActiveXコントロールにオブジェクトの追加?
VB6SP6です。 ActiveXコントロールにはプロパティ・メソッド・イベントが設定できることがわかりました。 オブジェクトの追加ってできますか? 使用する側から 通常は「ActiveX名.メソッド」とするところを 「ActiveX名.オブジェクト名.メソッド」というようにメソッドを呼び出したいのです。 へんちくりんな質問でしたらすみません。 どなたかわかる方いらっしゃいましたらよろしくお願いいたします!
- ベストアンサー
- Visual Basic
- DBグリットコントロールについて
OSは、Meを使っているVB初心者なのですが、 DBグリットコントロールMicrosoft Data Bound Grid Control 5.0(SP3)を表示したかったのですが見つかりませんでした。仕方なくMicrosoft Data Grid Control 6.0(OLEDB)を使用したのですが、メッセージが・・・このコントロールには互換性のあるデータソースがありません。プロジェクトまたは、フォームにDataEnvironmentのようなOLEDBデータソースまたはADOデータソースコントロールを追加してください。と表示されました。どういうことなのでしょうか? あと、Microsoft Data Bound Grid Control 5.0(SP3)はどのファイルにあるのでしょうか?
- ベストアンサー
- Visual Basic
- カスタムコントロールのOCAファイルについて
ドメイン環境で、複数の端末を複数のユーザーが使うことを想定しています。 VBはカスタムコントロールを追加したときに、同じディレクトリに拡張子がOCAのファイルを作ります。 説明を見ると、キャッシュのようです。 しかし、UsersにはC:\WINNT\SYSTEM32への書きこみ権がありません(与えません)。 VBでカスタムコントロールを追加したとき、キャッシュが書き込みができないせいか、何も言わずに落ちてしまいます。 これの回避策などをお持ちの方いたら、ぜひご教授ください。 ---- Windows 2000 SP2 Visual Studio 6.0 SP5
- ベストアンサー
- Visual Basic
- フォームサイズ変更時のコントロール位置について
OS:WindowsXP Pro SP2 VB:6.0 SP6 はじめまして。 VBで開発を行っているのですが フォームのサイズ変更をした時、コントロールの位置に困っています。 最大化した時などは端にコントロールが寄ってしまい見た目が大変悪いです。 フォームサイズの変更時にコントロールも任意の位置に移動する方法はどのようにすれば良いのでしょうか? ご存知の方ご教示宜しくお願いいたします。
- ベストアンサー
- Visual Basic
- ACCESSフォームにコントロールが追加できない
ACCESSフォームの修正作業をしているのですが、コントロールをコピー&ペーストしようとしたり、新しく配置しようとすると、 「このフォームまたはレポートにはコントロールをこれ以上追加できません」というメッセージが表示されてしまい、作業ができません。 どうしたらよいのでしょう?よろしくおねがいします。
- 締切済み
- オフィス系ソフト
- VBのsstab(MicroSoft Tabbed Dialog Control(SP6))について
VB6.0(SP6)で開発を行っております。 タブを使用している画面をロードする時に何らかのエラーが起きた場合、エラーメッセージを表示させてシステムをendで終了させたいのですが、エラーメッセージがでた後に画面がフリーズして残ってしまいます。vbpで実行すると正常にシステムを終了するのですが、exeを作って実行するとフリーズするという現象が起こります。 画面は残るのですがボタン等を押しても何も起こりません。フリーズの現象がでるのは、 1.フォームロード中にエラーが起きた場合 2.タブ上にラベルやテキストのオブジェクトがある場合 (タブ上に何もないときは正常に終了します) です。どうしたら正常に終了させられるか何かご存知の方いらっしゃいましたらアドバイスお願いします。
- 締切済み
- Visual Basic
- Image Edit Controlの出し方を教えてください。
初歩的な質問になるのかもしれませんが、よろしくお願いします。 現在VB5.0(SP3)で、JPEG画像をフォーム上に表示する方法を探しています。 通常のImageでは、Windowsのビューアのようには表示されません。(画像が荒くなるというか、、、)Windows XPの「画像とビューア」で見るような画像で表示したいのです。 いろいろな質問の回答等を見ておりまして「Image Edit Control」というものを使うとよいというお答えを見ました。そこで、探してみたのですが、コントロールを表示する方法をどうしても見つけることができません。「ツールボックスをクリックしてサブメニューが表示される、、、」とのことですが、サブメニューが出ないのです。 もしかして、vb5.0(sp3)では使用できないのでしょうか。 パソコンの環境はWindowsXP(Professional)、VB5.0(SP3)です。 よろしくお願いします。
- 締切済み
- Visual Basic
- VBなどのフォームエディタのコントロール名
VBやVC#で、ドラッグして画像を配置するソフトを作ろうとしています。 そこで、VBやVC#のフォームエディタのコントロールを使おうと考えたのですが、コントロール名がわからず、調べられません。フォームエディタコントロールを使うような記事も見つかりません。 ご存知でしたら、コントロール名を教えてください。
- 締切済み
- C・C++・C#
- OLEオブジェクトについて
開発環境がVB5 SP3でOLEオブジェクトコントロールへEXCELのグラフを動的にリンクをさせて表示ようと思っています。 しかし、OLEオブジェクトコントロールへグラフは表示されてはいるのですが、EXCELで表示しているグラフよりも明らかに小さく表示されてしまいます。 以下の環境でテストを実施しています。 OS:Windows 98 SecondEdition Office:office 2000 開発言語:Visual Basic5.0 SP3 この事象の原因もしくは回避方法を教えてください。 よろしくお願いします。
- ベストアンサー
- Visual Basic
お礼
回答ありがとうございました。 やはり現状のままでは解決は難しいようですね。もう少しいろいろと試してみて、どうしても行き詰まるようであれば、是非参考にさせて頂きます。