2011-10-24 4 views
0

내 CustomControl은 TextBox 및 ComboBox로 만들어집니다. 그리고이 컨트롤에 Validating 이벤트를 사용하고 싶습니다. 하지만 innerTextBox.Validating을 사용하면 TetBox가 작동한다는 것을 의미합니다. 하지만 나는이 UserControl의 일부인 ComboBox를 클릭 할 때이 이벤트가 실행되기를 원하지 않습니다. 나는이 UC가 하나가 되길 바란다. 그래서CustomControl textBox 유효성 검사 이벤트 및 ComboBox

innerTextBox는 텍스트 상자를이다 ... 내가 텍스트 상자와 콤보 상자를 클릭하면 그들이 함께 하나 렸기 때문에 어떤 이벤트가 발생하지 않습니다

innereComboBox이 콤보

인이 유효성 검사에 대한 내 코드 코드 이벤트입니다. ComboBox를 클릭하면 해당 이벤트가 실행되지 않습니다.

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

      remove { innerTextBox.Validating -= value; } 
     } 

희망 사항을 잘 알고 있습니다.

답변

1

본인 스스로해야한다고 생각합니다. 해당 UserControl에 대한 유효성 검사 코드를 실행 한 후 그들이 발사하지 마십시오 귀하의 내부 컨트롤에 대한 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을 사용하면 TetBox가 작동한다는 것을 의미합니다. 하지만 나는이 UserControl의 일부인 ComboBox를 클릭 할 때이 이벤트가 실행되기를 원하지 않습니다. 나는이 UC가 하나가 되길 바란다. 그래서 TextBox와 Combobox를 클릭 할 수 있으며 하나의 이벤트이므로 아무 이벤트도 실행되지 않습니다 ... 희망이 지금 더 좋습니다. – senzacionale