vs2008中 windows窗体应用程序中 如何实现像QQ登陆那样的功能? 就是从登陆界面登陆 弹出操作界面 求解答
6个回答
展开全部
首先你要明白程序都是从Main方法入口的。这里即Program.cs 内的Main方法。
在Main方法内首先实例化登录窗体(frmLogin),然后ShowDialog()显示登录窗体了。这里的ShowDialog()方法是模态对话框。并判断返回的状态,此时线程就会阻塞在这个if判断这个位置,等到frmLogin窗体返回结果。如:
if (frmLogin.ShowDialog() == DialogResult.OK)
{
Application.Run(new frmMain());
}
你只需要在验证登录成功的代码里加上 this.DialogResult = DialogResult.OK;
这时Main方法里刚阻塞在if判断位置的条件成立了,将会执行Application.Run(new frmMain()); 来启动主窗体了。
解释有点啰嗦,贴上代码会更清楚。涉及到Program.cs和登录的后台代码frmLogin.cs
Program.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
namespace DBDataDistributionClient
{
static class Program
{
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
frmLogin frmLogin = new frmLogin();
if (frmLogin.ShowDialog() == DialogResult.OK)
{
Application.Run(new frmMain());
}
}
}
}
frmLogin.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
namespace DBDataDistributionClient
{
public partial class frmLogin : Form
{
public frmLogin()
{
InitializeComponent();
}
//登录按钮事件
private void btnLogin_Click(object sender, EventArgs e)
{
if(...) //用户名密码验证正确
{
this.DialogResult = DialogResult.OK; // 返回ok Main主程序就会启动主界面了。
this.Close(); //关闭登录窗体
}
}
}
}
不明白的地方 可以继续提问。
在Main方法内首先实例化登录窗体(frmLogin),然后ShowDialog()显示登录窗体了。这里的ShowDialog()方法是模态对话框。并判断返回的状态,此时线程就会阻塞在这个if判断这个位置,等到frmLogin窗体返回结果。如:
if (frmLogin.ShowDialog() == DialogResult.OK)
{
Application.Run(new frmMain());
}
你只需要在验证登录成功的代码里加上 this.DialogResult = DialogResult.OK;
这时Main方法里刚阻塞在if判断位置的条件成立了,将会执行Application.Run(new frmMain()); 来启动主窗体了。
解释有点啰嗦,贴上代码会更清楚。涉及到Program.cs和登录的后台代码frmLogin.cs
Program.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
namespace DBDataDistributionClient
{
static class Program
{
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
frmLogin frmLogin = new frmLogin();
if (frmLogin.ShowDialog() == DialogResult.OK)
{
Application.Run(new frmMain());
}
}
}
}
frmLogin.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
namespace DBDataDistributionClient
{
public partial class frmLogin : Form
{
public frmLogin()
{
InitializeComponent();
}
//登录按钮事件
private void btnLogin_Click(object sender, EventArgs e)
{
if(...) //用户名密码验证正确
{
this.DialogResult = DialogResult.OK; // 返回ok Main主程序就会启动主界面了。
this.Close(); //关闭登录窗体
}
}
}
}
不明白的地方 可以继续提问。
展开全部
Program.cs中写如下代码 ,Frm_Login登录界面, Frm_Main 主界面
Frm_Login login = new Frm_Login();
if (login.ShowDialog() == DialogResult.OK)
{
login.Close();
Application.Run(new Frm_Main());
}
Frm_Login login = new Frm_Login();
if (login.ShowDialog() == DialogResult.OK)
{
login.Close();
Application.Run(new Frm_Main());
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
先做一个登陆界面,点击确定了,连接到操作界面,登陆界面隐藏就可以了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
还是找本书好好看看吧,学C#?看了之后就会发现,这个太简单了,问问题要先经过自己的大脑,加个学习群什么的!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你可以点击某个空间设置 窗体的大小,这样就可以实现了,
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
QQ给我 我帮你做!!还有比我这实际的么!分给我把!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询