ssCAROのブログ

色んなとこで見つけたプログラムのメモ置き場っぽい

画面作成中にユーザーコントロールの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 になるのを回避したい