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

本文关键字:清除 文本 字段 表单 返回 | 更新日期: 2023-09-27 18:04:34

我想在表单再次聚焦时清除表单上的文本字段。下面是我想要清除名为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");
        }
    }
}

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

您可以处理表单。激活事件来处理此事件,当激活时清除文本框。

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();
            }
       }

既然你在窗体上调用Hide,这等于将Visible设置为false,你可以使用窗体的事件visblechange来清除你的TextFields

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

我使用表单激活来确定表单是否已经恢复焦点