怎么看出哪个窗体是主窗体?如何在主窗体显示前,先显示一个登录窗体,登录成功后注销登录窗口,进入主窗体?生手请指教
解决方案 »
- 输出excel页面自动关闭,无提示“打开”“保存”“取消”对话框
- [IE编程高难度问题]关于webbrowser权限
- 将一个Form旋转
- 可以在设计模式下设置picturebox的背景图片,如果是在一个类中,怎样设置picture的背景文件
- 请教高手,我想实现一个从Object类派生出的类,能够实现简单数据绑定, 然后实现一个集合类做复杂数据绑定,不知道该怎么实现
- c#数据包载收问题
- 部署??
- 学习对象中的一个小程序!我就是不明的!
- 对于.目录的疑问
- System.Net.Sockets.SocketException: 协议家族尚未配置到系统中或没有它的存在迹象。
- 【代码分享】 fileman源代码
- 急!!!用C#在PDA上实现数据保存问题???
form2.Show();
this.Hide();
想实现登陆窗体比如loadform可以用loadform.showdialog();
另外, Application.Run 还有一个重载版本, 用于指定主窗口的,
就是那个使用 ApplicationContext 的那个如果需要在任意地方找到主窗口, 可以结合 进程对象来寻找.
因为在 Application 上没有提供这个功能. private void button6_Click(object sender, EventArgs e)
{
Form f = getMainForm();
if (f != null)
MessageBox.Show(f.Text);
else
MessageBox.Show("cannot get Mainform");
} // 获取本进程的主窗口对象
Form getMainForm()
{
FormCollection fc = Application.OpenForms;
foreach (Form f in fc)
if (f.Handle == System.Diagnostics.Process.GetCurrentProcess().MainWindowHandle)
return f;
return null;
}
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Form2 form2 = new Form2();
form2.ShowDialog();
Application.Run(new Form1());
}
}
Program.cs
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
frmLogin myLogin = new frmLogin();
if (myLogin.ShowDialog() == DialogResult.OK)
{
Application.Run(new frmMain());
}
//else
//{
// MessageBox.Show("登录失败!");
//}
}
frmLogin.cs
private void btnOK_Click(object sender, EventArgs e)
{
//可以到数据库中验证
if (txtUserName.Text == "test" && txtUserPWD.Text == "test")
{
this.DialogResult = DialogResult.OK;
}
else
{
MessageBox.Show("错误的用户名或密码!");
txtUserName.Focus();
}
}
private void btnCancel_Click(object sender, EventArgs e)
{
this.DialogResult = DialogResult.Cancel;
}
private void frmLogin_FormClosing(object sender, FormClosingEventArgs e)
{
if (this.DialogResult != DialogResult.Cancel && this.DialogResult != DialogResult.OK)
e.Cancel = true;
}
{MainForm.showdialog();//显示主窗体
}