나는 C#으로 작성된 창을 가지고 있으며 데이터를 데이터베이스에 저장하기 전에 각 컨트롤 (드롭 다운, 텍스트 상자 등)의 데이터가 null이 아닌지 확인하려고합니다. 나는이 응용 프로그램에서 이와 같은 여러 형태가 있습니다. 그 일을 내가 어떻게 할까? 내가 부울 함수를 만들 생각입니다.Windows Form에서 컨트롤 확인
0
A
답변
2
폼의 컨트롤을 통해 루프하는 간단한 방법을 작성하고, 제어 값을 확인할 수를 호출하는 이벤트 핸들러.
private bool CheckControls()
{
foreach (Control ctrl in this.Controls)
{
//Write the code to check whether the control value is null
//case: Testbox return true;
//case: Dropdown return true;
//case: Listbox return true;
//..etc
}
return false;
}
+0
나는 당신이 묘사 한 것과 정확히 똑같은 일을하는 오래된 vb 애플리케이션을 사용했다. 감사! –
1
ErrorProvider를 사용하십시오. 폼에 오류 공급자를 넣은 다음 한 번의 호출로 모든 컨트롤을 처리 할 수있는 유틸리티 함수를 가질 수 있습니다. 나는 텍스트 박스에 무엇인가가 입력되었는지 확인하기 위해 다음 코드를 사용했다.이 메소드를 확장 할 수있다.
필수 입력란을 처리하는 유틸리티 메소드로, 태그 입력란을 사용하여 다른 오류 메시지가 표시되지 않았으므로 특정 오류 메시지를 보관하는 데 사용 했으므로 빠르고 간편했습니다.
public static void TextBoxRequired_Validating(object sender, CancelEventArgs e, ErrorProvider errorProvider)
{
var textbox = (TextBox)sender;
var valid = !String.IsNullOrWhiteSpace(textbox.Text);
e.Cancel = !valid;
errorProvider.SetError(textbox, (valid ? string.Empty : textbox.Tag.ToString()));
}
유틸리티 메소드
void txtName_Validating(object sender, CancelEventArgs e)
{
ControlUtility.TextBoxRequired_Validating(sender, e, errorProvider1);
}
+0
고마워요! 나는이 코드의 일부를 내 코드에 사용했다. –
모델에 바인딩 된 데이터를 제어합니까? –
은 ADO로 바인딩됩니다. db에서 null을 허용하지 않도록 설정되어 있지만 다양한 사용자의 코드가 아니라 응용 프로그램에서 오류 처리를 원합니다. 제출하기 전에 메시지를 작성하여 필요한 모든 데이터를 입력하십시오. –