返回表单时如何清除文本字段

时间:2013-03-18 12:32:45

标签: c# .net winforms

我希望一旦它重新聚焦就清除表单上的文本字段。以下是我要在其中清除名为user_textboxpwd_textbox

的文本字段的表单的代码
namespace RDASMS
{
    public partial class Login : Form
    {
        public Login()
        {
            InitializeComponent();
            user_textbox.Clear();
            pwd_textbox.Clear();
        }

        private void register_Click(object sender, EventArgs e)
        {
            Registration newuser = new Registration();
            newuser.Show();
            this.Hide();
        }

        private void submit_login_Click(object sender, EventArgs e)
        {
            int checkuser = string.CompareOrdinal(user_textbox.Text, "Admin");
            if (checkuser == 0)
            {
                int checkpwd = string.CompareOrdinal(pwd_textbox.Text, "rnsit123");
                if (checkpwd == 0)
                {
                    Admin newuser = new Admin();
                    newuser.RefToLogin = this;
                    newuser.Show();
                    this.Hide();
                }
                else
                    MessageBox.Show("Invalid Password");
            }
            else
                MessageBox.Show("Invalid Username");
        }
    }
}

3 个答案:

答案 0 :(得分:2)

您可以处理Form.Activated事件来处理此事件,在激活后清除文本框。

http://msdn.microsoft.com/en-us/library/system.windows.forms.form.activated.aspx

你可以放一些这样的代码:

foreach (Control c in yourForm.Controls)
        {
            if (c is TextBox)
            {
                ((TextBox)c).Clear();
            }
       }

答案 1 :(得分:0)

由于您在表单上致电Hide,这相当于将Visible设置为false,因此您可以使用表单的事件VisibleChanged来清除TextField。

private void Form_VisibleChanged(object sender, EventArgs e){
  if (this.Visible == true) {
    user_textbox.Clear();
    pwd_textbox.Clear();
  }
}

答案 2 :(得分:0)

我使用Form Activated来确定表单是否已重新聚焦。