1

一旦再次成为焦点,我想清除表单上的文本字段。这是我要清除名为user_textbox和的文本字段的表单的代码pwd_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");
        }
    }
}
4

3 回答 3

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();
            }
       }
于 2013-03-18T12:39:05.990 回答
0

我使用 Form Activated 来确定表单是否重新成为焦点。

于 2013-03-18T19:14:46.903 回答
0

由于您调用Hide您的表单,这等于设置Visiblefalse,您可以使用表单的事件VisibleChanged来清除您的文本字段。

private void Form_VisibleChanged(object sender, EventArgs e){
  if (this.Visible == true) {
    user_textbox.Clear();
    pwd_textbox.Clear();
  }
}
于 2013-03-18T12:42:32.327 回答