MaskedTextBox.ValidatingType 속성
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
사용자의 데이터 입력을 확인하는 데 사용되는 데이터 형식을 가져오거나 설정합니다.
public:
property Type ^ ValidatingType { Type ^ get(); void set(Type ^ value); };
[System.ComponentModel.Browsable(false)]
public Type ValidatingType { get; set; }
[System.ComponentModel.Browsable(false)]
public Type? ValidatingType { get; set; }
[<System.ComponentModel.Browsable(false)>]
member this.ValidatingType : Type with get, set
Public Property ValidatingType As Type
속성 값
유효성 검사에 사용되는 데이터 형식을 나타내는 Type입니다. 기본값은 null
입니다.
- 특성
예제
다음 코드 예제에서는 사용자의 입력을 유효한 DateTime로 구문 분석하려고 시도합니다. 실패 TypeValidationCompleted 하면 이벤트 처리기가 사용자에게 오류 메시지를 표시합니다. 값이 유효한 DateTime경우 코드는 추가 검사 수행하여 제공된 날짜가 오늘 날짜 이전이 아닌지 확인합니다. 이 코드 예제에서는 Windows Forms 프로젝트에 라는 컨트롤과 라는 MaskedTextBox1
ToolTip1
컨트롤이 ToolTip 포함되어 MaskedTextBox 야 합니다.
private void Form1_Load(object sender, EventArgs e)
{
maskedTextBox1.Mask = "00/00/0000";
maskedTextBox1.ValidatingType = typeof(System.DateTime);
maskedTextBox1.TypeValidationCompleted += new TypeValidationEventHandler(maskedTextBox1_TypeValidationCompleted);
maskedTextBox1.KeyDown += new KeyEventHandler(maskedTextBox1_KeyDown);
toolTip1.IsBalloon = true;
}
void maskedTextBox1_TypeValidationCompleted(object sender, TypeValidationEventArgs e)
{
if (!e.IsValidInput)
{
toolTip1.ToolTipTitle = "Invalid Date";
toolTip1.Show("The data you supplied must be a valid date in the format mm/dd/yyyy.", maskedTextBox1, 0, -20, 5000);
}
else
{
//Now that the type has passed basic type validation, enforce more specific type rules.
DateTime userDate = (DateTime)e.ReturnValue;
if (userDate < DateTime.Now)
{
toolTip1.ToolTipTitle = "Invalid Date";
toolTip1.Show("The date in this field must be greater than today's date.", maskedTextBox1, 0, -20, 5000);
e.Cancel = true;
}
}
}
// Hide the tooltip if the user starts typing again before the five-second display limit on the tooltip expires.
void maskedTextBox1_KeyDown(object sender, KeyEventArgs e)
{
toolTip1.Hide(maskedTextBox1);
}
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.MaskedTextBox1.Mask = "00/00/0000"
Me.MaskedTextBox1.ValidatingType = GetType(System.DateTime)
Me.ToolTip1.IsBalloon = True
End Sub
Private Sub MaskedTextBox1_TypeValidationCompleted(ByVal sender As Object, ByVal e As TypeValidationEventArgs) Handles MaskedTextBox1.TypeValidationCompleted
If (Not e.IsValidInput) Then
Me.ToolTip1.ToolTipTitle = "Invalid Date"
Me.ToolTip1.Show("The data you supplied must be a valid date in the format mm/dd/yyyy.", Me.MaskedTextBox1, 0, -20, 5000)
Else
' Now that the type has passed basic type validation, enforce more specific type rules.
Dim UserDate As DateTime = CDate(e.ReturnValue)
If (UserDate < DateTime.Now) Then
Me.ToolTip1.ToolTipTitle = "Invalid Date"
Me.ToolTip1.Show("The date in this field must be greater than today's date.", Me.MaskedTextBox1, 0, -20, 5000)
e.Cancel = True
End If
End If
End Sub
' Hide the tooltip if the user starts typing again before the five-second display limit on the tooltip expires.
Private Sub MaskedTextBox1_KeyDown(ByVal sender As Object, ByVal e As KeyEventArgs) Handles MaskedTextBox1.KeyDown
Me.ToolTip1.Hide(Me.MaskedTextBox1)
End Sub
설명
마스크는 그 자체로 사용자의 입력이 지정된 형식에 유효한 값을 나타내지 않도록 보장하지 않습니다. 다음 C# 코드는 마스크를 보여줍니다.
maskedTextBox1.Mask = "99/99/9999";
다음 Visual Basic 코드는 마스크를 보여줍니다.
MaskedTextBox1.Mask = "99/99/9999"
이 마스크는 사용자가 8자리 숫자를 입력해야 할 수 있지만 사용자가 올바른 범위의 월, 날짜 및 연도 값을 입력했는지 확인할 수 없습니다. "2003년 12월 20일" 및 "70/90/0000"은 마스크에 관한 한 동일하게 유효합니다.
를 사용하여 ValidatingType 사용자가 입력한 데이터가 형식의 instance DateTime 할당하여 사용자가 입력한 데이터가 올바른 범위 내에 있는지 확인할 수 있습니다. 컨트롤의 현재 텍스트는 사용자가 컨트롤을 떠날 때 유효성이 검사됩니다. 이벤트를 모니터링 TypeValidationCompleted 하여 데이터가 유효성 검사에 실패하는지 여부를 확인할 수 있습니다.
MaskedTextBox는 가 인 경우에만 에 대한 ValidatingType 검사 수행합니다true
.MaskCompleted
에서 사용자 지정 데이터 형식 ValidatingType을 사용하려면 문자열을 매개 변수로 사용하는 정적 Parse
메서드를 구현해야 합니다. 이 메서드는 다음 서명 중 하나 또는 둘 다로 구현해야 합니다.
public static Object Parse(string)
public static Object Parse(string, IFormatProvider)
적용 대상
추가 정보
.NET