私はカスタムコントロールを設計したプロジェクトで作業しています。グループボックスに追加してグループボックス内に配置しようとしています。グループボックス内のカスタムコントロールの場所を変更する(null参照例外を返します)
コントロールをボックスに初期化して追加する操作は正常ですが、コントロールを移動またはサイズ変更しようとすると例外が発生します。
//initialise using object in outputs collection
VitalsVisual vitalsVisual = vitalOutputs.getVitalsVisual();
//add to relevant groupbox
grpbxIntraOp.Controls.Add(vitalsVisual);
//change location (coordinates within groupbox)
vitalsVisual.Location = new Point(249, 256); //THROWS EXCEPTION
//resize
vitalsVisual.Size = new Size(494, 342); //THROWS EXCEPTION IF REACHED
「オブジェクト参照がオブジェクトのインスタンスに設定されていません」という表示があります。 VitalsVisual vitalsVisual
が初期化されていないが、コンストラクタが呼び出され、Controls.Add()
コマンドが機能しているため、これは実際にはわかりません。確かに初期化されていなければ、このコマンドは同じ例外をスローします。
ここで間違っている可能性があるのは誰でも見つけられますか?正しい方向への動きに本当に感謝しています!
ありがとう、マーク
'getVitalsVisual'は実際に値を返しますか、それともnullを返しますか? 'VitalsVisual'コントロールは何を継承していますか? – kagelos
提案された答えは、これを正しくデバッグできなかった理由を説明しますが、_problem_を実際には解決しません。つまり、null参照があります。 'NullReferenceException'をデバッグする方法については、重複している箇所にある広範囲なアドバイスを参照してください。なぜ、「なぜこの例外が発生するのですか?その時点で問題が残っている場合は、問題を確実に再現する良い[mcve]を提供している新しい質問と、特に問題があることの正確な説明を尋ねてください。 –
コントロールがコントロールコレクションに追加できると誤って想定していたので重複しているわけではなく、nullにすることはできません。なぜこれが間違った前提であるのか説明しました。 'getVitalsVisual'をデバッグすることは次のステップですが、ここでは問題はありません。 – TaW