我原来用的方法是
两个窗体.一个login.cs
一个form1.cs
在main方法中先 Application.Run(new login());在login.cs的登陆成功后用
Form1 fem1 = new Form1(comboBox1.Text);
fem1.ShowDialog();
调出主窗体
但是这样之后就会有两个窗体同时存在.
如何关闭原来的login窗体.而不影像fem1窗体?
我尝试用Close()方法.这样整个程序就退出了
我尝试用hide()方法.但是似乎没有效果.依然是两个窗体同时显示
我尝试用visible属性设置成false但是效果同上..求教..谢谢..
两个窗体.一个login.cs
一个form1.cs
在main方法中先 Application.Run(new login());在login.cs的登陆成功后用
Form1 fem1 = new Form1(comboBox1.Text);
fem1.ShowDialog();
调出主窗体
但是这样之后就会有两个窗体同时存在.
如何关闭原来的login窗体.而不影像fem1窗体?
我尝试用Close()方法.这样整个程序就退出了
我尝试用hide()方法.但是似乎没有效果.依然是两个窗体同时显示
我尝试用visible属性设置成false但是效果同上..求教..谢谢..
解决方案 »
- c#中用oledbdataadapter.updata将datatable中的数据更新到dbf太慢,求解决方法!
- Remoting 远程对象注销后,客户端如何立刻检测到?
- C# WMI编程 获取手机链接电脑后的那个设备信息
- winforms:得到图像的xy值
- 找不到类型或命名空间名称“Sprite”
- 动态生成的picturebox,右键下拉菜单中的删除功能的实现?
- 关于double转换为字符串的问题?!!!!
- C# HTML 标签转换成Word格式有何方法?
- 修改注册表某个键值出错
- C# 正则表达式进行文字区块划分
- 请教高手!执行exe时报错!在线等!!谢谢
- 高手兄弟们进来帮帮忙啊!!发了3次了,还没有解决
Form1 fem1 = new Form1(comboBox1.Text);
fem1.ShowDialog();
之后转到login画面,然后在登陆button里面加上一句this.Close();
就行啦
this.Hide();
fem1.ShowDialog();
Form1 fem1 = new Form1(comboBox1.Text);
fem1.ShowDialog();
this.Hide();
这是典型的语句执行顺序问题。因为ShowDialog()方法是阻塞式的,即是说在你用ShowDialog()方法Show出来的窗体没关闭之前this.Hide()是不会执行的。还有如果你用这个方法,默认情况下Show出来的窗体关闭后程序是还没有结束的,因为登陆窗体依然在运行,只是你把它隐藏了,看不到而已,不信可以打开进程管理器查看一下,解决方法是在Show出来的窗体的closing事件中写Application.Exit();
{
int State;
try
{
if((textBox1.Text=="")||(textBox2.Text==""))
{
MessageBox.Show("用户名或密码未填写,请填写完整");
return;
}
else
{
State=Opration.ValidationPWD(textBox1.Text,textBox2.Text);
if(State==3)
{
this.LoginState="[系统管理员]";
Login();
}
else if(State==2)
{
this.LoginState="[高级用户]";
Login();
}
else if(State==1)
{
this.LoginState="[一般用户]";
Login();
}
else
MessageBox.Show("用户名或密码错误,请核对后重新输入!");
}
}
catch(Exception ex)
{
throw ex;
}
finally
{}
}
public void Login()
{
timer1.Interval=25;
timer1.Enabled=true;
timer1.Elapsed+=new System.Timers.ElapsedEventHandler(Eshow);
timer2.Interval=500;
timer2.Tick+=new EventHandler(this.timer2_Tick);
timer2.Enabled=true;
} public void timer2_Tick(object Source,System.EventArgs e)
{
SMain main=new SMain(textBox1.Text,this.LoginState);
main.Show();
timer2.Enabled=false;
}
public void Eshow(object sender,System.Timers.ElapsedEventArgs e)
{
if(this.Opacity!=0)
this.Opacity-=0.05;
else
{
this.Hide();
timer1.Enabled=false;
}
}
public int ValidationPWD(string UID,string PWD)
{
string Tag;
string State;
Tag=this.returnString("Select Count(LoginName) From Login Where LoginName='"+UID+"'");
if(Tag=="0")
return 0;
else
{
if(PWD!=this.returnString("Select PSWD From Login Where LoginName='"+UID+"'"))
return 0;
else
{
State=this.returnString("Select State From Login Where LoginName='"+UID+"' And PSWD='"+PWD+"'");
return System.Convert.ToInt32(State);
}
}
}这个是我写的一个程序.关键的几个函数给你列出来了.
希望能对你有写帮助.
LixingTie(生铁) ,非常感谢你的解答..不但让我解决了问题.而且让我学到了东西.非常感谢.
Azure_ceil(天蓝) ,谢谢你的代码.虽然现在还没用到.说不定以后能用到.谢谢.