0

这真让我抓狂。

我在 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(".", "");
    }

感谢大家!

4

1 回答 1

1

if (txtPhone.Text.Trim().Length != 10) {

            if (txtPhone.Text != "")
            {
                lblErrorIndicator.Visible = true;
                lblErrorIndicator.Text = "*Valid 10 digit phone number required";
            }
        }

私人无效btnClear_Click(对象发送者,EventArgs e){txtPhone.Clear();lblErrorIndicator.Text=""; txtPhone.Focus(); }

我能理解你的问题,但最后告诉我你想做什么?

于 2012-10-27T11:02:53.533 回答