none
TextBoxのデータバインド終了時のイベント RRS feed

  • 質問

  • データバインドされているTextBoxがあり、データバインドの終了時に1回だけ処理を行いたいのですが、

    TextBoxのどのイベントを使えばよいでしょうか?

     

    TextChangedだと、通常の入力時にも処理がされてしまいますし、DataBindingsのCollectionChangedなども

    使えなさそうですし。

    2007年10月18日 5:25

すべての返信

  •  

    まずはどのタイミングが欲しいんでしょうか?

    データバインドしているデータ側は何なんでしょうか?

     

    データバインドの終了時というのはデータソースからターゲットのTextBoxにデータが送り込まれたときですか?

    BindingSource.BindingComplete イベント が使えます。 (BindingSourceを使っていなきゃ使えませんが)

    ((Binding)textBox1.DataBindings[0]).BindingComplete イベントも使えるかもしれません。

    BindingCompleteEventArgs.BindingCompleteContext プロパティでバインドされた方向を調べなければ使えません。

     

    2007年10月18日 17:36
  • 以下の方法で動作確認できました。どうもありがとうございました。

    private void FormMain_Load(object sender, EventArgs e)
    {
        numberTextBox.DataBindings[0].BindingComplete += new BindingCompleteEventHandler(FormMain_BindingComplete);
    }

    void FormMain_BindingComplete(object sender, BindingCompleteEventArgs e)
    {
        if (numberTextBox.Text.Containts("-"))//負の場合
        {
            numberTextBox.ForeColor = Color.Red;
        }
        else
        {
            numberTextBox.ForeColor = Color.Blue;
        }
    }

    2007年10月19日 6:29