画面作成中にユーザーコントロールのLoadイベントを処理させない
ユーザーコントロールを使用したForm画面の作成中に次のエラーが出てForm画面が開かなくなった。
ユーザー '' はログインできませんでした。
ユーザーコントロールのLoadイベントにApp.configからDBへの接続情報を取得してDBからデータを取得、表示をするプログラムを追加してからエラーが出ていた。
Form画面を開くときに、配置したユーザーコントロールのLoadイベントが実行されApp.configから接続情報を取得できていないのが原因で、DBへの接続ができずエラーとなっていた。
画面作成中は、Loadイベントが実行されないようにしようと思って調べた時のメモ。
Private Sub UserCtrl_Load(sender As Object, e As EventArgs) Handles MyBase.Load '開発中は処理をしない If Me.DesignMode Then Return 'DBへの接続と取得・表示 End Private
参考URL:.NET:Tips > デザイン:デザイン時に処理を実行させない
ユーザーコントロールが入れ子になっているとき、子のユーザーコントロールのDesignModeはFalseを返すようです。
その情報を調べた時のメモ。
参考URL:デザインモード(this.DesignMode)を正しく得ることができない場合があります
参考URL:入れ子させた UserControl の DesignMode が false になるのを回避したい