在C#中,如何在Form2关闭时使Form1显示出来?

goodpopo 2005-12-24 12:44:17
问题1.当我在form1中调用form2后,将form1关闭。然后再点form2中的一个按钮使form2关闭,并同 时使form1显示出来,这应该怎么做呢?
问题2.在C#中如何建立一个应用程序级的变量,此变量可以被所有窗体和窗体中的各种对象所调用?
问题3.asp.net问题:请问,在当前您所看到的留言板中用到的控件除了会用到DataList等数据接收控件外还会用到哪些控件,如:TextBox或Lable或其他什么的?也就是如何在显示留言时不会出现滚动条而是直接向下延伸?另外,在使用表格Table控件时如何不使其自动改变大小,也就是不随表格中的字体多少改变大小?
...全文
1154 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
-渔民- 2005-12-27
  • 打赏
  • 举报
回复
上面的這麼多位的代碼都是可以的呀,其實也很簡單的,也可以一兩行就實現了。
mymylee 2005-12-26
  • 打赏
  • 举报
回复
其他的上面都说过了,我补充一下:
Form2的closed方法中加入代码:
form1 frm=new form1();
frm.show();
mumuliang 2005-12-26
  • 打赏
  • 举报
回复
Form1 newform=new Form1()
mumuliang 2005-12-26
  • 打赏
  • 举报
回复
问题1.当我在form1中调用form2后,将form1关闭。然后再点form2中的一个按钮使form2关闭,并同 时使form1显示出来,这应该怎么做呢?
答:这原本是一个相当简单和基本的问题,只需要在form1的close事件当中new一个form2实例并且show出来,同时在form2的close事件中,new一个form1实例,并show之。但这里存在一个问题,假如,这两个窗体中的其中一个(假设是form1)为程序启动的入口,那么当它关闭的时候,默认会关闭整个Application,也就是应用程序被关闭了。因此,在需要关闭该入口窗体form1的时候,不应该使用form1.close(),而是使它的visible属性为false,假关闭之。


form1窗体的button1按钮事件中
{
隐藏form1实例;
新建一个form2实例;
显示新建的form2实例;
}

form2窗体的button1按钮事件中(或者form2窗体的关闭事件中)
{
关闭form2窗体;(如果是窗体关闭事件,则不需要此句)
显示form1实例;
}

问题2.在C#中如何建立一个应用程序级的变量,此变量可以被所有窗体和窗体中的各种对象所调用?
例如,在form1窗体中声明一个public string Mystr;在form2中,Form1 newform=Form1()之后,就可以看到newform.Mystr;(如果form1和form2不在同一个namespace下,则需要通过项目浏览器在Form2类中添加Form1的引用,然后再form2头部 using form1所在的namespace)

问题3.asp.net问题:请问,在当前您所看到的留言板中用到的控件除了会用到DataList等数据接收控件外还会用到哪些控件,如:TextBox或Lable或其他什么的?也就是如何在显示留言时不会出现滚动条而是直接向下延伸?另外,在使用表格Table控件时如何不使其自动改变大小,也就是不随表格中的字体多少改变大小?
用css来控制。
fumeiyu2 2005-12-26
  • 打赏
  • 举报
回复
用个线程吧,点关闭窗口时,就调出线程来运行FORM1

ThreadStart ts = new ThreadStart(StartForm2);
Thread th = new Thread(ts);
th.Start();
this.Close();
}
private void StartForm2()
{

Application.Run(new Form2());
}
在form2里就反过来定义
PackChen 2005-12-25
  • 打赏
  • 举报
回复
lx4587(天外飞仙)
这位朋友
偶按照你的代码不行呀
因为偶的按钮里面存在了
if (text1.text=='') return;
this.close();
结果不管如何,他就是要打开FormMain呀
PackChen 2005-12-25
  • 打赏
  • 举报
回复
昏倒,连打开窗口都要这么多代码
有点学不下去啦
goodpopo 2005-12-25
  • 打赏
  • 举报
回复
前两题已解决,有谁能回答第三个问题吗?
eastasp 2005-12-24
  • 打赏
  • 举报
回复
以上方法都可以,我怀疑楼主之所以没有调用成功,可能是因为主线程放到关闭窗体了,所以造成
关闭窗体的时候把整个系统都关闭了,所以调用另一个窗体没有成功, 楼主不仿检查一下,是否存在这种情况
踏雪听雨 2005-12-24
  • 打赏
  • 举报
回复
这不是问题吧
lx4587 2005-12-24
  • 打赏
  • 举报
回复
新建一个类同时控制两个窗体
Form1 form1 = new Form1();
if(form1.ShowDialog()==DialogResult.OK)
{
Form2 form2 = new Form2();
form2.ShowDialog();
}
xtra6714 2005-12-24
  • 打赏
  • 举报
回复
可以在form1打开form2关闭,你应该没问题吧,第二步,在form2的closeing事件中加入实例,然后show出form1这样我不信不行.
goodpopo 2005-12-24
  • 打赏
  • 举报
回复
以上的方法我都试过了,不行呀!!
从不签到 2005-12-24
  • 打赏
  • 举报
回复
我以前写的,供参考:
private void frmMain_Resize(object sender, System.EventArgs e)
{

if(this.WindowState==FormWindowState.Minimized)
{
this.Visible=false;
frmTime f2 = new frmTime();
f2.Show();
}
}
Form2
private void mainshow()
{
frmMain f1 = new frmMain();
f1.Visible=true;
this.Close();
}

private void frmTime_DoubleClick(object sender, System.EventArgs e)
{
mainshow();
}
califord 2005-12-24
  • 打赏
  • 举报
回复
楼上正解
hainang1234 2005-12-24
  • 打赏
  • 举报
回复
1.
class Form1
{
static Form1 f1;
Form1_Load()
{
f1 = this;
}
void Do()
{
form2 f = new form2();
this.Hide();
f.Show();
}
}
//form2中的按钮事件
this.Hide();
Form1.f1.Show();

说明:我只是把他们隐藏起来,没有真正的关闭。不知是否符合你的要求。如果关闭的话,就调用Close,然后new。


2.
static开头
c11_11_11 2005-12-24
  • 打赏
  • 举报
回复
1.form2 frm = new form2 ();
frm.show();

2.static int a=0;

111,083

社区成员

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

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

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