这真让我抓狂。
我在 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(".", "");
}
感谢大家!