返回主界面的问题

glacierkidd 2011-05-16 07:55:11
我设置了当点击主界面的功能按钮时,弹出子功能界面,同时主界面的Visible = false;但是在子界面里有一个返回主界面的按钮我是这样定义的
MainUi main = new MainUi();
main.Visible = true;
this.Close();
MainUi 是主窗口类。
可是点击之后的效果是直接关闭系统,不知道是什么错误,我是新手,求高手指教~~~~~
...全文
201 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
glacierkidd 2011-05-17
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 cjh200102 的回复:]
楼上分析很到位
[/Quote]
办法笨,但是好用了。谢谢了,问题已经解决~~~
glacierkidd 2011-05-17
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 weslonlovejall 的回复:]
this.Close();把这个去掉就不会关闭了。
[/Quote]
不知道为什么,用不了this.owner();提示有错误。
雪饮 2011-05-16
  • 打赏
  • 举报
回复
这个是最笨的方法,呵呵也很实在
在主窗体的按钮下面写:

private void button2_Click(object sender, EventArgs e)
{
Form2 f = new Form2();
f.ff = this;//把主界面临时保存在子窗体里面
f.Show();//显示子窗体
this.Visible = false;//主窗体隐藏
}

在子窗体的下面先定义一个 公共对象 :

public Form1 ff;//保存主窗体对象
private void button1_Click(object sender, EventArgs e)
{
ff.Show();//显示主窗体,等于楼主的意思 “返回主界面”
this.Close();//子窗体关闭
}
cjh200102 2011-05-16
  • 打赏
  • 举报
回复
楼上分析很到位
ohkuy 2011-05-16
  • 打赏
  • 举报
回复
你的方法我刚才测了一下没有错误,你也可以单独建一个项目加两个窗体试一下
不过这种方法要不断的创建新对象,不太好,占用资源太多
源码如下:

//这是主窗体的一个按钮单击事件
private void button1_Click(object sender, EventArgs e)
{
FormChild frm = new FormChild();
frm.Show();
this.Visible = false;
}

//这是子窗体的一个按钮单击事件
private void button1_Click(object sender, EventArgs e)
{
MainUi frm = new MainUi();
frm.Visible = true;
this.Close(); //这个只会关闭当前窗体即子窗体,不会关闭系统的
}

不过,我还是推荐你使用2楼的方法,更好一些
有一丁点暇疵,我再加一点注释你看一下

//这是主窗体的一个按钮单击事件
private void button1_Click(object sender, EventArgs e)
{
FormChild frm = new FormChild();
frm.Show(this); //this必须写,传递当前窗体
this.Visible = false;}

//这是子窗体的一个按钮单击事件
private void button1_Click(object sender, EventArgs e)
{
MainUi frm = (MainUi)this.Owner; //这里必须显示转换
frm.Visible = true;
this.Close();
}

hanzhehanzhe 2011-05-16
  • 打赏
  • 举报
回复
3楼说的太详细了,我就没什么补充的了
xuexiaodong2009 2011-05-16
  • 打赏
  • 举报
回复
MainUi main = new MainUi();

定义了一个新的 MainUi, 对原有的那个没有影响。
此时你的程序仍然在运行, 由于没有调用 MainUi.Show() 所以新定义的 MainUi 也没有显示。
龍过鸡年 2011-05-16
  • 打赏
  • 举报
回复
MainUi main = new MainUi();

定义了一个新的 MainUi, 对原有的那个没有影响。
此时你的程序仍然在运行, 由于没有调用 MainUi.Show() 所以新定义的 MainUi 也没有显示。

可以使用 2楼的方法

[Quote=引用 2 楼 caozhy 的回复:]

在加载子窗体的时候。

FormChild child = new FormChild();
child.Show(this);

返回:
MainUi main = this.Owner;
main.Visible = true;
this.Close();
[/Quote]

或者直接用

MainUi main = new MainUi();

定义了一个新的 MainUi, 对原有的那个没有影响。
此时你的程序仍然在运行, 由于没有调用 MainUi.Show() 所以新定义的 MainUi 也没有显示。

可以使用 2楼的方法

[Quote=引用 2 楼 caozhy 的回复:]

在加载子窗体的时候。

FormChild child = new FormChild();
DialogResult dr = child.ShowDialog(this);

dr.DialogResult = DialogResult.OK;

而不需要隐藏主界面
threenewbee 2011-05-16
  • 打赏
  • 举报
回复
在加载子窗体的时候。

FormChild child = new FormChild();
child.Show(this);

返回:
MainUi main = this.Owner;
main.Visible = true;
this.Close();
风之雨 2011-05-16
  • 打赏
  • 举报
回复
this.Close();把这个去掉就不会关闭了。
1,项目功能:(1)注册用户管理模块管理员登录后可以实现对用户信息的编辑、删除、查询、添加等操作。(2)公交公告信息管理模块普通用户登录系统后,进入公告管理模块,用户可以提出自己的一些看法意见和对本公交系统的建议,能查看以前的留言。除此之外系统还提供事物认领模块。(3)公交动态信息管理模块管理员登录系统后进入相应管理员界面,在管理员界面中,可对公交动态信息进行添加和删除,实时更新公交变动信息。(4)公交线路管理模块管理员登录系统后进入相应管理界面,在管理员界面中,可对公交线路信息进行添加和删除。(5)公交统计分析管理员登录系统后进入相应管理界面,对公交信息进行统计分析,并以图表可视化展现。(6)线路地图查看管理员可以查看公交线路地图,并以百度地图形式展现。(7)用户模块用户登录成功后,可以对当前用户信息进行查看、用户信息修改、找回密码设置等操作(8)失物招领模块用户登录成功后可以查看失物招领信息,管理员可以发布失物招领信息。      适合做毕业设计参考项目。2,涉及技术:SSH框架,Tomcat3,开发环境:IDEA,MySQL数据库4,讲解方式:从环境安装,项目搭建,以及项目介绍等进行讲解5,包含资料:项目源码(含数据库文件),环境安装包,项目文档。

110,530

社区成员

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

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

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