두 가지 양식의 로그인과 기본 양식이 있습니다. 처음에는 로그인 양식이 표시되고 사용자가 인증되면 기본 양식이 표시되고 로그인 양식이 닫힙니다.내 코드의 문제점은 무엇입니까? C# winforms
다소 효과가 있지만 로그인 양식을 닫고 기본 양식을 표시하려면 btnLogin (로그인 양식의 버튼)을 두 번 클릭해야합니다.
여기 내 코드가 있습니다.
Program.cs (로그인 양식)
namespace Login
{
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Login fLogin = new Login();
if (fLogin.ShowDialog() == DialogResult.OK)
{
Application.Run(new Main());
}
}
}
}
로그인 양식 당신은 내가 잘못을하고 있어요 생각
namespace Login
{
public partial class Login : Form
{
public Login()
{
InitializeComponent();
}
private void Login_Load(object sender, EventArgs e)
{
}
private void btnLogin_Click(object sender, EventArgs e)
{
// initially btnLogin has a DialogResult property set to None
Authenticate();
}
private void Authenticate()
{
SqlCeConnection conn = new SqlCeConnection(@"Data source=d:/BIMS.sdf");
conn.Open();
SqlCeCommand cmd = new SqlCeCommand(Properties.Resources.CheckIfUserExists, conn);
cmd.Parameters.Add("username", txtUsername.Text.Trim());
cmd.Parameters.Add("password", txtPassword.Text.Trim());
SqlCeDataReader dr = cmd.ExecuteReader();
bool hasRow = dr.Read();
if (hasRow)
{
btnLogin.DialogResult = DialogResult.OK;
}
}
}
}
? 감사합니다 ....
을 변경 당신은 약간의 디버깅을 수행 했습니까? – decyclone
예 ... 내 인증 코드가 사용자를 얻는 것 같습니다. – yonan2236
btnLogin DialogResult 속성이 none으로 설정되어 있기 때문입니다. 사용자가 인증 된 경우에만 'OK'로 설정됩니다. 따라서 대화 상자를 닫으려면 버튼을 두 번 클릭해야합니다. 어떻게해야합니까? – yonan2236