Windowsアプリケーションの作成を前提とします。


C#に限らずVisualStudioのデザイナを利用した際に、発生するエラーに関してです。




・コンボボックス3つ連ねて日付の入力コントロールを作成したり、


・テキストボックスを二つ準備し、入力内容のふりがなを、もう片方のテキストボックスに表示


といった、頻繁に利用する機能を設けた自作のコントロール。


VisualStudioでしたら、


1.ソリューションエクスプローラのプロジェクトを右クリック


2.「追加」→「新しい項目の追加」を選択


3.ダイアログが表示されるので、「カテゴリ」の「Widows Forms」を選択


4.「テンプレート」の「ユーザコントロール」を選択


5.適当にファイル名をつけ、OK


ユーザコントロールが作成されます。


で、まぁ自分なりにコントロールをペタペタ貼り付け、コンストラクナ内やLoadイベント内で初期化コードを記載。


ツールボックスにも作成したユーザコントロールが増えていると思われます。

これをフォームにドラッグすれば、独自のユーザコントロールが貼り付けれます。


実行すれば動くかと思います。


だが!たまにエラーが発生します。


こんなエラーですかね。


「データが失なわれる可能性を防ぐため、デザイナの読み込み前に以下のエラーを解決する必要があります。 」


これはなぜでるかというと、憶測になってしまいますが、デザイナに表示する際に、作ったユーザコントロールをインスタンス化しているからだと思われます。


で、インスタンス化する際に、初期化コードにエラーがあると表示されます。


よくあるパターンがApp.configにDBの設定を記載し、初期化時にDBに接続しに行く際ですかね?


この場合は、取得した設定がNullかどうかを判定するなりし、接続ができない場合にも動作するようにコーディングする必要があります。

(そもそも、DBの接続が失敗した際のコードを、しっかり記載すれば回避ができるのではありますが。)



という感じです。ユーザコントロールを利用し、デザインがまともに表示されなく断念した人は、今一度エラーがないかソースを確認してみるといいかと思います。