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.activate.aspx

あなたはこのようないくつかのコードを置くことができます:

foreach (Control c in yourForm.Controls)
        {
            if (c is TextBox)
            {
                ((TextBox)c).Clear();
            }
       }
于 2013-03-18T12:39:05.990 に答える
0

に設定するのHideと同じフォームを呼び出すので、フォームのイベントVisibleChangedを使用して TextFields をクリアできます。Visiblefalse

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

Form Activated を使用して、フォームがフォーカスに戻ったかどうかを判断します。

于 2013-03-18T19:14:46.903 に答える