我希望一旦它重新聚焦就清除表单上的文本字段。以下是我要在其中清除名为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");
}
}
}
答案 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来确定表单是否已重新聚焦。