掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
「クラス Class名(コントロール コントロール名) はロードされていません。」というエラーを解決するには。 (ID:78960)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
コントロールの参照に失敗した場合、そのコントロールは PictureBoxに置き換えてロードされます。 この場合は、OCXにコンパイルしてから利用してみてください。 そうすれば、参照設定さえ行われていれば、正しく読み込まれます。 もし、UserControlのまま使うのであれば、以下の事に注してください。 1) まず、ユーザーコントロールの存在するパスに気をつけてください。 このパスに付いては、vbpファイルの「UserControl=」行を見るとわかります。 その内容が「絶対パス指定」になっているか、「ファイル名のみ」なのか、 または「相対パス指定」になっているのかを確認し、実行端末におけるそのパスに、 ユーザーコントロールがあるかどうかを確認してみてください。 パスが違っていた場合、ユーザーコントロールの読込に失敗するため、 それらを使っていたフォーム全てで、「ロードされていません」という エラーが発生する事になります。 もし、パスの違いによるエラーが発生した場合は、そのUserControlを 使用しているフォームをすべて解放してから、手動でUserControlを プロジェクトに追加してください。その後で、先ほど解放したフォームを 順次追加しなおしていけば、PictureBoxに化けることなく読み込まれるでしょう。 2) また、「ユーザーコントロールを使ったフォーム」を、別のプロジェクトで 流用しようとした場合などにも、コントロールを読み込めない事があります。 例えば、標準EXEプロジェクト「SampleProject」を作成し、 そこに UserControl 「SampleControl」を作成しておいたとします。 この場合、フォームが利用するコントロールは、 「SampleProject.SampleControl」という内部名になります。 (*.frmファイルをメモ帳で開くと、このような記述が見つかるかと思います) そして、別のプロジェクト——例えば、Project1——を作成し、ここに 先ほどの「SampleControl」を追加して、利用するとします。 この場合、フォームが利用するコントロールの内部名は、 「Project1.SampleControl」となります。同じユーザーコントロールでも、 プロジェクトが異なれば、内部名は変化してしまうわけです。 (OCXにコンパイルされたコントロールの場合は、内部名は変化しません) 内部名が異なるため、もし、先ほどのSampleProjectプロジェクトで 使っていたフォームを、このProject1プロジェクトに追加しようとすると、 コントロールの内部名が異なっているため、コントロールを見つける事ができず、 PictureBoxに置き換えてロードされる事になります。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.