winform的一个小问题

wjhgzx 2009-03-27 11:15:21
我建了一个Windows Forms的工程,当我登录成功了,登录窗体(在login.cs的登录事件里,this.Hide())就隐藏起来了,进入了主界面。我想注销掉主界面,重新打开隐藏的登录窗体(调用this.Hide()而被隐藏起来的那个窗体,不是重新打开一个)。该如何写啊?听他们说可以用委托,但是不会用。指导下好吗?

...全文
75 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
wjhgzx 2009-03-28
  • 打赏
  • 举报
回复
form.FormClosing += delegate
这句话中的delegate是代表什么意思啊?
cja03 2009-03-28
  • 打赏
  • 举报
回复
主界面不用改:

public Form2()
{
InitializeComponent();
}


登陆窗口在Show主界面时,顺便订阅主界面的Closing事件:

Form2 form = new Form2();
form.FormClosing += delegate
{
this.Show();
};
form.Show();
this.Hide();

wjhgzx 2009-03-27
  • 打赏
  • 举报
回复
2楼正解。。我弄错了。我把你的代码粘过去,当然不行。之后添加了form2的FormClosing事件才行。。这法子不错。学习中。另外,用委托的方法怎么做呢?
wjhgzx 2009-03-27
  • 打赏
  • 举报
回复
2楼的代码思路是很清晰,可是并没有效果啊,我关闭了form2,可是form1并没有显示出来。另外你说能用事件去通知,能否也贴出代码?
cja03 2009-03-27
  • 打赏
  • 举报
回复
一向不喜欢把登陆窗体当主窗体用。

在显示主界面的时候,把登陆窗体传给主界面,然后隐藏登陆窗体。
在主界面销掉时,显示登陆窗体。


//Form1(登陆窗口)
Form2 form = new Form2(this);
form.Show();
this.Hide();



public partial class Form2 : Form
{
Form1 form1;
public Form2(Form1 form)
{
InitializeComponent();

this.form1 = form;
this.form1.Hide();
}

private void Form2_FormClosing(object sender, FormClosingEventArgs e)
{
form1.Show();
}
}


当然,用事件去通知也行。
baiyunyinv 2009-03-27
  • 打赏
  • 举报
回复
帮你顶一下

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧