2009-02-27 28 views
2

カスタムコントロール(コントロールから継承するクラス)を作成しました。フォームに置くと、Visual Studio IDEでそれを扱うことができます。それは私にエラーを示し、私はフォームを参照していない。カスタムコントロールとVisual Studio 2008 SP1

エラーメッセージは次のとおりです。La variable 'ctrlImagen' noestádeclarada o no seasignónunca。

これは、Compact Frameworkアプリケーションのwinformです。

どうすればこの問題を解決できますか? (そのクラスはUserControlから継承していますが、これは完全に動作します)

+0

質問にエラーメッセージを挿入できますか? – Migol

+0

このWPFまたはWinFormsですか? – Micah

+0

変数controlMapは割り当てられません。スペイン語で:La変数 'c​​ontrolMap'は、宣言されていません。 – VansFannel

答えて

0

を私が解決するために、コンストラクタでこれを置きます問題:;:

 
    public class ControlMapa : Control 
    { 
     public ControlMapa() 
     { 
      this.ClientSize = new Size(21, 21); 
      ... 

ありがとう

this.ClientSize =新しいサイズ(21、21)

私のクラスのbegingはこれです!

1

あなたのコントロールのコードにバグがあるようです。これは、コントロールのレンダリングを妨げている実行時エラーのように聞こえます。

コードを再読み込みし、潜在的なヌルポインタ例外、割り当てられていない変数、スタックオーバーフローなどを探します。バグはどこかにあります。

2

音が狂っても、Visual Studioはデザイナーでコントロールするコードを選択的に実行しています。最初に確認するのはあなたのコンストラクタです。あなたがそれを使用しようとすることは決してない場合でも、publicである空のデフォルトのコンストラクタがあることを確認してください。その後、レイアウトイベント(リサイズなど)に結びついたコードがあればいいですか?これは、カスタムコントロールがデザイナーで動作しないときにいつも問題を見つけられるようなものです。

1

あなたのユーザーコントロールにパブリックのデフォルトコンストラクタがありませんか?私は、同様のエラー「変数を取得することができます 『userControlX』のいずれかで宣言されていないか、コンストラクタが公開されていない場合は、「割り当てられていませんでした。

をしかし、より多くの情報が必要になります。

+0

クラスがUserControlから継承する場合、それは完全に機能します。 – VansFannel

1

フォーム初期化ロジックが実行される前に実行される初期化ロジックで、デザイン時に例外が発生したようです。良い例は、フォームに含まれているユーザーコントロールのデフォルトコンストラクタ(またはそれが呼び出す1つ以上のメソッド)によって発生するNullPointerExceptionです。

関連する問題