• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:DataBindの更新タイミング(VB2005))

DataBindの更新タイミング(VB2005)

このQ&Aのポイント
  • VB2005で、クラスのプロパティをテキストボックスにDataBindingしています。しかし、ToolStripButtonをクリックした時に更新がされない状態になります。
  • テキストボックスからTabキーを押してButton1にフォーカスを移動させてからToolStripButtonをクリックすると正しい内容が表示されます。
  • 実際のプログラムではデータベースへの書き込みなどを行っているため、更新できない場合があります。ツールボタンをクリックした時に先にDataBindの更新が走る方法はありませんか?

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

プロパティへの反映は,デフォルトではOnValidationになります。 このため,Validation系のイベントの発生しない*Strip系のコントロールではバインドは発生しません。 Site) Control validation events not fired when toolstrip button is clicked | Microsoft Connect http://connect.microsoft.com/VisualStudio/feedback/details/117084/control-validation-events-not-fired-when-toolstrip-button-is-clicked Site) ToolStripButtonを押すと他のコントロールの変更をコミットせずにイベント飛んでくる http://social.msdn.microsoft.com/Forums/ja/csharpgeneralja/thread/6d547db3-5f0b-4b45-b11a-ad9d2d84c244 最初のMS ConnectフィードバックのMSからの回答を見るに,.NET 2.0 βのタイミングで既に認識はしているもののそういうデザインだ,ということみたいです。 Connectにあるように,ToolStripButtonを押したタイミングでFormのValidateを呼び出すのが簡単だと思います。 他に,プロパティへの反映をOnPropertyChangedにする方法もありますが,プロパティへの反映の回数が増えるので,この解決だけの為に使うのはお薦めしません。 # ユーザーの入力補助 (Enabled制御等) のために使うのであればよいと思いますが。

hosohoso13
質問者

お礼

>Validation系のイベントの発生しない*Strip系のコントロール そんなコントロールがあったんですね。発生させない理由があるのでしょうが、初心者の私には 大きく躓いてしまいました。 ツールバーに保存や印刷、閉じるなどボタンを配置したのですが、こういう問題があるのであれば ツールバーはやめて普通のボタンを置いて処理しようと思います。 大変勉強になりました。ありがとうございました。

関連するQ&A