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