登录窗体的作用是卡主窗体,就是说,只要登录窗体不关闭,同程序的其他窗体都操作不了。
利用 .ShowDialong(); 方法
Form有个 DialogResult 属性
每个子窗体,只要继承至Form,都可以使用 DialogResult 属性
this.DialogResult = DialogResult.OK;只要这个属性给值,该窗体就会关闭。(会关闭登录窗体,表示调用方法已经结束,会跳向上层)
DL登录窗体 frm1 = new DL登录窗体();
DialogResult result = frm1.ShowDiaLog();//卡主界面,显示登录窗体
if (result == DialogResult.OK)//登陆窗的结果
{
Application.Run(new 主窗());//加载主窗体
}
else
{
Application.Exit();//关闭程序
}
子窗体内设置 DialogResult 属性
if (sql数据.sql状态 == "Open")
{
this.DialogResult = DialogResult.OK;
}
子窗体补充: 窗体移动
public login()
{
InitializeComponent();
this.button1.Click += this.button1_Click;
this.button2.Click += this.button2_Click;
}
#region 窗体移动
private Point mouseOff;//鼠标移动位置变量
private bool leftFlag;//标签是否为左键
private void Frm_MouseDown(object sender, MouseEventArgs e)//鼠标按下
{
if (e.Button == MouseButtons.Left)
{
mouseOff = new Point(-e.X, -e.Y); //得到变量的值
leftFlag = true; //点击左键按下时标注为true;
}
}
private void Frm_MouseMove(object sender, MouseEventArgs e)//鼠标移动
{
if (leftFlag)
{
Point mouseSet = Control.MousePosition;
mouseSet.Offset(mouseOff.X, mouseOff.Y); //设置移动后的位置
Location = mouseSet;
}
}
private void Frm_MouseUp(object sender, MouseEventArgs e)//鼠标松开
{
if (leftFlag)
{
leftFlag = false;//释放鼠标后标注为false;
}
}
#endregion
DialogResult 属性的说明: 常用 OK 和 NO
public enum DialogResult
{
//
// 摘要:
// 从对话框返回了 Nothing。这表明有模式对话框继续运行。
None = 0,
//
// 摘要:
// 对话框的返回值是 OK(通常从标签为“确定”的按钮发送)。
OK = 1,
//
// 摘要:
// 对话框的返回值是 Cancel(通常从标签为“取消”的按钮发送)。
Cancel = 2,
//
// 摘要:
// 对话框的返回值是 Abort(通常从标签为“中止”的按钮发送)。
Abort = 3,
//
// 摘要:
// 对话框的返回值是 Retry(通常从标签为“重试”的按钮发送)。
Retry = 4,
//
// 摘要:
// 对话框的返回值是 Ignore(通常从标签为“忽略”的按钮发送)。
Ignore = 5,
//
// 摘要:
// 对话框的返回值是 Yes(通常从标签为“是”的按钮发送)。
Yes = 6,
//
// 摘要:
// 对话框的返回值是 No(通常从标签为“否”的按钮发送)。
No = 7
}