これは私を夢中にさせています。
Windowsフォームコントロールにコードがあります。このコードにより、フォームがクリアされ、フォーカスが最初のコントロール(電話番号)に戻されます。問題は、On-Leaveイベントハンドルを使用していることです。このハンドラーには検証コードが含まれているため、使用がコントロールを離れたときに電話が検証されます。
フォームのリセットまたは終了を押すと、フォームがクリアされるだけでなく、フォーカスが電話フィールドに戻され、コントロール(テキストボックス)が検証されます。
フォーカスの検証で電話コントロールにフォーカスする必要がありますが、この動作を防ぐ方法はありますか?
private void txtPhone_Leave(object sender, EventArgs e)
{
Int64 ConvertPhone;
if (txtPhone.Text.Trim().Length != 10)
{
lblPhoneError.Visible = true;
lblErrorIndicator.Visible = true;
lblErrorIndicator.Text = "*Valid 10 digit phone number required";
}
else if (Int64.TryParse(txtPhone.Text, out ConvertPhone))
{
lblPhoneError.Visible = false;
lblErrorIndicator.Visible = false;
txtPhone.MaxLength = 10;
txtPhone.Text = txtPhone.Text.Substring(0, 3) + "." + txtPhone.Text.Substring(3, 3) + "." + txtPhone.Text.Substring(6, 4);
}
}
private void btnClear_Click(object sender, EventArgs e)
{
txtPhone.Clear();
txtPhone.Focus();
}
private void txtPhone_Enter(object sender, EventArgs e)
{
txtPhone.Text = txtPhone.Text.Replace(".", "");
}
みんな、ありがとう!