首先是C#第二种形式

时间:2014-10-06 10:22:05

标签: c# winforms

我希望能够在我的应用程序中使用两种不同的表单。一个用户和一个用于生产,其中设置等可以改变。我知道我可以使用密码,按下按钮将打开第一个表格。

private void settingsButton_Click(Object sender, EventArgs e)
{
  Form2 settingsForm = new Form2();
  settingsForm.Show();
}

这意味着每次进入生产模式时都必须输入密码,由于不便,我不想要这样做。他们的任何其他方法是这样做的吗?有人向我提到使用.ini文件,但我没有这方面的经验。

这就是我所做的工作,但是当我关闭生产形式并尝试再次打开时,没有任何事情发生。

        private void btnLogin_Click(object sender, EventArgs e)
    {
        if (Production.LOGGED == false)
        {
            MyEnterPassword = new EnterPassword("Please Enter Password to edit settings", "Edit Settings", "********");
            Application.DoEvents();
            if (MyEnterPassword.ShowDialog() == DialogResult.OK)
            {
                Production newProdForm = new Production();
                newProdForm.Show();
            }
            Production.LOGGED = true;
        }
    }

我有public static bool LOGGED = false;在生产表格中声明

3 个答案:

答案 0 :(得分:1)

在您的登录表单中声明一个名为LOGGED的变量,该变量将以如下方式打开:

public static bool LOGGED=false;

并将您的FOrmLoad代码更改为:

private void settingsButton_Click(Object sender, EventArgs e)
{
 if(Form2.LOGGED==false){
     Form2 settingsForm = new Form2();
     settingsForm.Show();
 }
}

PS:登录后将其值更改为true

答案 1 :(得分:0)

在主程序中,您需要存储用户是否已输入密码。

在主窗体顶部定义一个布尔值bool RequirePassword = true然后当用户要求打开serttings窗体时

private void settingsButton_Click(Object sender, EventArgs e)
{
    if(requirePassword)
    {
       //Request Password from user
       // When the password comes back from the form, check if it is valid
       // If it is, RequirePassword = false;
       // else post and error and return
    }

   Form2 settingsForm = new Form2();
   settingsForm.Show();
}

答案 2 :(得分:0)

您可以在表单1中保存密码,并在2表单上创建公共字符串密码并发送密码

private void settingsButton_Click(Object sender, EventArgs e) 
{
Form2 settingsForm = new Form2();
settingsForm.Password = Form1PasswordString;
settingsForm.Show();
}

在表格2上你需要 public string Password;