Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#登录示例_C#_Winforms - Fatal编程技术网

C#登录示例

C#登录示例,c#,winforms,C#,Winforms,我在为登录表单隐藏主表单时遇到问题。一旦用户登录,关闭登录表单并显示主表单 我把自己弄糊涂了,我删除了所有代码,重新开始。我可以很好地隐藏登录表单 我无法隐藏名为with的主窗体 Application.Run(new MainForm()); 登录表单如下所示: namespace WindowsFormsApplication1 { public partial class LoginForm : Form { public LoginForm()

我在为登录表单隐藏主表单时遇到问题。一旦用户登录,关闭登录表单并显示主表单

我把自己弄糊涂了,我删除了所有代码,重新开始。我可以很好地隐藏登录表单

我无法隐藏名为with的主窗体

Application.Run(new MainForm());
登录表单如下所示:

namespace WindowsFormsApplication1
{
    public partial class LoginForm : Form
    {
        public LoginForm()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            string username;
            string password;

            username = TB_username.Text;
            password = TB_password.Text;

            if (User.Login(username, password))
            {
                Globals._Login = true;

                // Close login form
                this.Dispose(false);

            }
            else
            {
                MessageBox.Show("Login Failed");
            }

        }
    }
}
我不知道如何隐藏,然后显示主窗体一旦登录已通过

谢谢,任何示例都很好

使用登录表单上的ShowDialog()函数从应用程序的主表单中加载登录表单。这将阻止在LoginForm完成之前显示MainForm

private void MainForm_Load(object sender, EventArgs e) {
    var loginForm = new LoginForm();
    loginForm.ShowDialog();
}
  • 使用
    ShowDialog()
    打开登录表单。然后,您不需要自己隐藏或禁用主窗体。事实上,如果您希望登录表单出现在应用程序的开头,请考虑在加载MyFrase:

    之前显示它。
    static void Main()
    {
        Application.SetCompatibleTextRenderingDefault(false);
        Application.EnableVisualStyles();
        DialogResult result;
        using (var loginForm = new LoginForm())
            result = loginForm.ShowDialog();
        if (result == DialogResult.OK)
        {
            // login was successful
            Application.Run(new Mainform());
        }
    }
    
  • 在登录表单中,在
    按钮1\u单击
    ,使用

    DialogResult = DialogResult.OK;
    
    关闭登录表单并将
    OK
    结果传递给主表单。 不需要
    Dispose()

  • 所以。。。这是我的登录:)你可以喜欢也可以不喜欢,但是。。。这是我的解决方案

        private void FRIIB_Load(object sender, EventArgs e)
        {
            try
            {
                QueryBuilder.insql = Crypto.DecryptStringAES(Model.DecryptRegisteryValue("inSQL"), "inSQL");
            }
            catch (Exception exc)
            {
                MessageBox.Show(exc.Message);
            } // getting connection string
            if (!(new Func<bool>(() =>
                    {
                        Func<bool> l = null; l = () =>
                        {
                            using (LoginForm loginDialog = new LoginForm())
                            {
                                loginDialog.ShowDialog();
                                loginDialog.Focus();
                                if (loginDialog.IsExit) return false;
                                else
                                    if (loginDialog.IsAuthorized) return true;
                                    else return l();
                            }
                        }; return l();
                    }
                  )()
                )) Close(); 
            else w8( () => LoadData() );
        }
    

    当你在主窗体中调用“Hiver()”时发生了什么?无关,但是考虑使用<代码> StrueString < /C> >代替登录密码部分的<代码>字符串< /代码>。任何一个请解释我将如何将用户信息获取到MaS窗体。
        private void w8(Action action)
        {
            Cursor.Current = Cursors.WaitCursor;
            Application.DoEvents();
            action();
            Cursor.Current = Cursors.Default;
        }
    
    Public Class DamnLogin
        Private db As FRIIB
    
        Public Sub New(ByVal connection As String)
            db = New FRIIB(connection)
        End Sub
    
        Public Function Login(ByVal name As String, ByVal password As String) As Boolean
            Dim GetUser = _
               From u In db.GetTable(Of [User])() _
               Where u.Name = name _
               And u.Password = password _
               Select u
            Return GetUser.Count = 0
        End Function
    End Class
    
    let Login usename password = 
        new LinqBase.DamnLogin(insql) |> fun damn ->
            not <| damn.Login(usename,password)
    
    public partial class LoginForm : Form
    {
        bool isAuthorized;
        bool exit;
    
        public bool IsAuthorized    { get { return this.isAuthorized;   } }
        public bool IsExit          { get { return this.exit;           } }
    
        public LoginForm()
        {
            isAuthorized    = false;
            exit            = false;
    
            InitializeComponent();
        }
    
        private void Close_Click(object sender, EventArgs e)
        {
            exit = true; 
            this.Close();
        }
    
        private void LoginButton_Click(object sender, EventArgs e)
        {
            if (Login.Text != "")
            {
                if (Login.Text.ToUpper() == "ADMIN")
                {
                    if (Password.Text == Crypto.DecryptStringAES(Model.DecryptRegisteryValue("Password"), "Password"))
                        isAuthorized = true;
                }
                else
                {
                    if (QueryBuilder.Login(Login.Text, Password.Text))
                        isAuthorized = true;
                }
            }
    
            this.Close();
        }
    }