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";
            }
        }

private void btnClear_Click(object sender、EventArgs e){txtPhone.Clear(); lblErrorIndicator.Text = ""; txtPhone.Focus(); }

私はあなたの問題を理解することができますが、最後にあなたが何をしたいのか教えてください。

于 2012-10-27T11:02:53.533 に答える