2011-10-24 16 views
0

My CustomControlは、TextBoxとComboBoxで作成されます。そして、私はこのコントロールのValidatingイベントを使用したいと思います。しかし、私はinnerTextBox.Validatingを使用する場合、これはOKであるTetBoxのために働くことを意味します。しかし、私はこのUserControlの一部であるComboBoxをクリックすると、このイベントが発生することは望ましくありません。私はこのUCが一つになることを願っています。だから私は、テキストボックスとコンボボックスをクリックすると、彼らは一緒に一つですbecouse何のイベントが起動しません...CustomControl textBoxイベントとコンボボックスの検証

innerTextBoxは、TextBoxの

innereComboBoxで、これは検証のための私のコードコードイベントでコンボボックス

です。 ComboBoxをクリックすると、そのイベントは何をするのでしょうか?

public new event System.ComponentModel.CancelEventHandler Validating 
     { 
      add 
      { 
       innerTextBox.Validating += value; 
      } 

      remove { innerTextBox.Validating -= value; } 
     } 

ご迷惑をおかけして申し訳ありません。

答えて

1

あなたはこれを自分で行う必要があると思います。彼らは発生しませんので、あなたの内側のコントロールのCausesValidationプロパティをオフにして、ユーザーコントロールのためのあなたの検証のコードを実行します。たとえば

public UserControl1() { 
    InitializeComponent(); 
    innerTextBox.CausesValidation = false; 
    innerComboBox.CausesValidation = false; 
} 

を、このコントロールはから空でないテキストボックスと、選択した項目を必要としコンボボックス:

protected override void OnValidating(CancelEventArgs e) { 
    if (innerTextBox.Text == string.Empty) 
    e.Cancel = true; 
    else if (innerComboBox.SelectedIndex == -1) 
    e.Cancel = true; 

    base.OnValidating(e); 
} 
1

コンボボックスをイベントの検証に追加しようとしましたか?

public new event System.ComponentModel.CancelEventHandler Validating 
{ 
    add 
    { 
     innerTextBox.Validating += value; 
     innerComboBox.Validating += value; 
    } 

    remove 
    { 
     innerTextBox.Validating -= value; } 
     innerComboBox.Validating -= value; } 
    } 
} 
+0

私が今してみてくださいしかし、私は、コンボボックス – senzacionale

+0

@senzacionaleをクリックすると、検証イベントはまだ火災:私はあなたが私がクリックしたときに発生しませんそのイベントを何をすべきか_」で意味を十分に理解していませんコンボボックス?"_。もっと説明できますか? – Marco

+0

TextBoxとComboboxはCustomControlの一部です。そして、私はこのコントロールのValidatingイベントを使用したいと思います。しかし、私はinnerTextBox.Validatingを使用する場合、これはOKであるTetBoxのために働くことを意味します。しかし、私はこのUserControlの一部であるComboBoxをクリックすると、このイベントが発生することは望ましくありません。私はこのUCが一つになることを願っています。だから、私はTextBoxとComboboxをクリックすることができ、彼らは一緒に一つであるため、イベントは発生しません...希望は今より良いです – senzacionale