我在表单之间滚动时遇到了关于保存值的问题。我有两个 Windows 窗体。其中一个是 Main,另一个是 NewUser
当我在 Main 并单击更改用户按钮时:
NewUser yk = new NewUser();
yk.ShowDialog();
当 NewUser 表单加载时:
private void NewUser_Load(object sender, EventArgs e)
{
if (impersonatedUser == null)
{
txtNewUserName.Select();
return;
}
btnRevert.Enabled = true; //user may revert back to the old user
btnLogon.Enabled = false;
txtNewUserName.Enabled = false;
txtPassword.Enabled = false;
btnRevert.Select();
}
还原:
private void btnRevert_Click(object sender, EventArgs e)
{
// revert to previous user
impersonatedUser.Undo();
btnRevert.Enabled = false;
btnLogon.Enabled = true;
}
模拟用户后,我可以恢复为用户,但如果我关闭表单,然后单击 Main 中的更改用户按钮以恢复用户,我希望在此会话中已经模拟,因此 impersonatedUser 不为 null 并且 btnRevert.enabled = true; 但一切都始于创建一个新形式。因此我无法恢复如果我不想在 NewForm 中丢失变量我该怎么办?我应该使用this.Visible = false而不是this.Close()等吗?顺便说一句,我在模仿方面没有任何问题。