我怎样才能让这个功能继续下去
How can i make the function keep going
我正在构建一个程序并有一个执行按钮。如果这是您第一次使用需要登录的程序,我想这样做。如果没有,则您不需要,因为登录凭据已保存。这是我的代码..现在它不继续执行函数的其余部分..
loginSaver 是一个获取和设置方法,它在 loginform 中将 logincontinue 设置为 true。
IB 表格:
internal void ExecBtn_Click(object sender, EventArgs e)
{
if (Username != "" || Password != "")
{
Username = Properties.Settings.Default.UserName.ToString();
Password = Properties.Settings.Default.UserPass.ToString();
}
else if (loginForm.LoginSaver == true)
{
Username = loginForm.LoginUserName;
Password = loginForm.LoginPassword;
}
else if (Username == "" || Password == "")
{
loginForm.Show();
return;
}
if (ServerComboBox.SelectedIndex == -1)
{
ServerComboBox.BackColor = Color.LightYellow;
MessageBox.Show("Du måste välja en kund!");
return;
}
登录表单:
private void LoginBtn_Click(object sender, EventArgs e)
{
IB_Ärende IBForm = new IB_Ärende();
if (UserNameTxt.Text == "" || PasswordTxt.Text == "")
{
UserNameTxt.BackColor = Color.LightYellow;
PasswordTxt.BackColor = Color.LightYellow;
UserNameTxt.ForeColor = Color.Red;
PasswordTxt.ForeColor = Color.Red;
MessageBox.Show("Du måste ange ett användarnamn och Lösenord!");
}
if (CheckBoxSave.Checked == true)
{
IsServerConnected();
if (testingConnection == true)
{
Properties.Settings.Default.UserName = UserNameTxt.Text;
Properties.Settings.Default.UserPass = PasswordTxt.Text;
Properties.Settings.Default.Save();
//loginContinue = true;
this.Hide();
UserNameTxt.Text = "";
PasswordTxt.Text = "";
//IBForm.ExecBtn_Click(sender, e);
}
else if (testingConnection == false)
{
MessageBox.Show("Fel användarnamn eller lösenord");
UserNameTxt.BackColor = Color.LightYellow;
PasswordTxt.BackColor = Color.LightYellow;
UserNameTxt.ForeColor = Color.Red;
PasswordTxt.ForeColor = Color.Red;
return;
}
}
else if (CheckBoxSave.Checked == false)
{
IsServerConnected();
if (testingConnection == true)
{
userName = UserNameTxt.Text;
passWord = PasswordTxt.Text;
loginchecker = true;
loginContinue = true;
this.Hide();
//IBForm.ExecBtn_Click(sender, e);
UserNameTxt.Text = "";
PasswordTxt.Text = "";
}
else if (testingConnection == false)
{
MessageBox.Show("Fel användarnamn eller lösenord");
UserNameTxt.BackColor = Color.LightYellow;
PasswordTxt.BackColor = Color.LightYellow;
UserNameTxt.ForeColor = Color.Red;
PasswordTxt.ForeColor = Color.Red;
return;
}
}
else
{
MessageBox.Show("Du måste logga in för att kunna fortsätta!");
}
}
感谢您的帮助...
1.If 如果您想阻止当前功能并等待 LoginForm 关闭,请使用 ShowDialog() 而不是 Show()。这样,在关闭登录表单后,您可以访问 Login/Password:
loginForm.ShowDialog();
Username = loginForm.LoginUserName;
Password = loginForm.LoginPassword;
if(string.IsNullOrEmpty(Username) || string.IsNullOrEmpty(Password))
{
return;
}
2.I 建议使用 string.IsNullOrEmpty()
检查是否提供了 login/password。
3.Instead of if (CheckBoxSave.Checked == true)
你可以写 if (CheckBoxSave.Checked)
4.If 您的条件计算结果为 True/False 例如if (CheckBoxSave.Checked == true)
在其他情况下不要使用另一个 if
如 else if (CheckBoxSave.Checked == false)
如果某事不正确那么它必须是错误的使用
if (CheckBoxSave.Checked)
{
...
}
else
{
...
// checkbox is not checked
}
类似的是 if (testingConnection == true)
您还可以稍微重构一下您的 LoginBtn_Click(object sender, EventArgs e)
方法:
private void LoginBtn_Click(object sender, EventArgs e)
{
userName = UserNameTxt.Text;
passWord = PasswordTxt.Text;
if (string.IsNullOrEmpty(userName) || string.IsNullOrEmpty(passWord))
{
UserNameTxt.BackColor = Color.LightYellow;
PasswordTxt.BackColor = Color.LightYellow;
UserNameTxt.ForeColor = Color.Red;
PasswordTxt.ForeColor = Color.Red;
MessageBox.Show("Du måste ange ett användarnamn och Lösenord!");
return;
}
IsServerConnected();
if (testingConnection)
{
if(CheckBoxSave.Checked)
{
Properties.Settings.Default.UserName = UserNameTxt.Text;
Properties.Settings.Default.UserPass = PasswordTxt.Text;
Properties.Settings.Default.Save();
}
DialogResult = DialogResult.OK;
}
else
{
UserNameTxt.BackColor = Color.LightYellow;
PasswordTxt.BackColor = Color.LightYellow;
UserNameTxt.ForeColor = Color.Red;
PasswordTxt.ForeColor = Color.Red;
MessageBox.Show("Fel användarnamn eller lösenord");
}
}
这样 loginForm.ShowDialog() 只有在登录成功时才会 DailogResult.OK 并且 userName/password 将始终设置。
我正在构建一个程序并有一个执行按钮。如果这是您第一次使用需要登录的程序,我想这样做。如果没有,则您不需要,因为登录凭据已保存。这是我的代码..现在它不继续执行函数的其余部分..
loginSaver 是一个获取和设置方法,它在 loginform 中将 logincontinue 设置为 true。
IB 表格:
internal void ExecBtn_Click(object sender, EventArgs e)
{
if (Username != "" || Password != "")
{
Username = Properties.Settings.Default.UserName.ToString();
Password = Properties.Settings.Default.UserPass.ToString();
}
else if (loginForm.LoginSaver == true)
{
Username = loginForm.LoginUserName;
Password = loginForm.LoginPassword;
}
else if (Username == "" || Password == "")
{
loginForm.Show();
return;
}
if (ServerComboBox.SelectedIndex == -1)
{
ServerComboBox.BackColor = Color.LightYellow;
MessageBox.Show("Du måste välja en kund!");
return;
}
登录表单:
private void LoginBtn_Click(object sender, EventArgs e)
{
IB_Ärende IBForm = new IB_Ärende();
if (UserNameTxt.Text == "" || PasswordTxt.Text == "")
{
UserNameTxt.BackColor = Color.LightYellow;
PasswordTxt.BackColor = Color.LightYellow;
UserNameTxt.ForeColor = Color.Red;
PasswordTxt.ForeColor = Color.Red;
MessageBox.Show("Du måste ange ett användarnamn och Lösenord!");
}
if (CheckBoxSave.Checked == true)
{
IsServerConnected();
if (testingConnection == true)
{
Properties.Settings.Default.UserName = UserNameTxt.Text;
Properties.Settings.Default.UserPass = PasswordTxt.Text;
Properties.Settings.Default.Save();
//loginContinue = true;
this.Hide();
UserNameTxt.Text = "";
PasswordTxt.Text = "";
//IBForm.ExecBtn_Click(sender, e);
}
else if (testingConnection == false)
{
MessageBox.Show("Fel användarnamn eller lösenord");
UserNameTxt.BackColor = Color.LightYellow;
PasswordTxt.BackColor = Color.LightYellow;
UserNameTxt.ForeColor = Color.Red;
PasswordTxt.ForeColor = Color.Red;
return;
}
}
else if (CheckBoxSave.Checked == false)
{
IsServerConnected();
if (testingConnection == true)
{
userName = UserNameTxt.Text;
passWord = PasswordTxt.Text;
loginchecker = true;
loginContinue = true;
this.Hide();
//IBForm.ExecBtn_Click(sender, e);
UserNameTxt.Text = "";
PasswordTxt.Text = "";
}
else if (testingConnection == false)
{
MessageBox.Show("Fel användarnamn eller lösenord");
UserNameTxt.BackColor = Color.LightYellow;
PasswordTxt.BackColor = Color.LightYellow;
UserNameTxt.ForeColor = Color.Red;
PasswordTxt.ForeColor = Color.Red;
return;
}
}
else
{
MessageBox.Show("Du måste logga in för att kunna fortsätta!");
}
}
感谢您的帮助...
1.If 如果您想阻止当前功能并等待 LoginForm 关闭,请使用 ShowDialog() 而不是 Show()。这样,在关闭登录表单后,您可以访问 Login/Password:
loginForm.ShowDialog();
Username = loginForm.LoginUserName;
Password = loginForm.LoginPassword;
if(string.IsNullOrEmpty(Username) || string.IsNullOrEmpty(Password))
{
return;
}
2.I 建议使用 string.IsNullOrEmpty()
检查是否提供了 login/password。
3.Instead of if (CheckBoxSave.Checked == true)
你可以写 if (CheckBoxSave.Checked)
4.If 您的条件计算结果为 True/False 例如if (CheckBoxSave.Checked == true)
在其他情况下不要使用另一个 if
如 else if (CheckBoxSave.Checked == false)
如果某事不正确那么它必须是错误的使用
if (CheckBoxSave.Checked)
{
...
}
else
{
...
// checkbox is not checked
}
类似的是 if (testingConnection == true)
您还可以稍微重构一下您的 LoginBtn_Click(object sender, EventArgs e)
方法:
private void LoginBtn_Click(object sender, EventArgs e)
{
userName = UserNameTxt.Text;
passWord = PasswordTxt.Text;
if (string.IsNullOrEmpty(userName) || string.IsNullOrEmpty(passWord))
{
UserNameTxt.BackColor = Color.LightYellow;
PasswordTxt.BackColor = Color.LightYellow;
UserNameTxt.ForeColor = Color.Red;
PasswordTxt.ForeColor = Color.Red;
MessageBox.Show("Du måste ange ett användarnamn och Lösenord!");
return;
}
IsServerConnected();
if (testingConnection)
{
if(CheckBoxSave.Checked)
{
Properties.Settings.Default.UserName = UserNameTxt.Text;
Properties.Settings.Default.UserPass = PasswordTxt.Text;
Properties.Settings.Default.Save();
}
DialogResult = DialogResult.OK;
}
else
{
UserNameTxt.BackColor = Color.LightYellow;
PasswordTxt.BackColor = Color.LightYellow;
UserNameTxt.ForeColor = Color.Red;
PasswordTxt.ForeColor = Color.Red;
MessageBox.Show("Fel användarnamn eller lösenord");
}
}
这样 loginForm.ShowDialog() 只有在登录成功时才会 DailogResult.OK 并且 userName/password 将始终设置。