C#线程生命周期,在窗体(设Form1)用线程启动另一窗体(设Form2)后,Form2闪现一下就关闭了

////Form1下的按钮事件//privatevoidbtn_Click(...){Threadthread=newThread(newThreadStart());/... //
//Form1下的按钮事件
//
private void btn_Click( ... )

{
Thread thread=new Thread(new ThreadStart());

//thread.IsBackground=true;

thread.Start();

}

private void ShowForm()
{
Form2 form=new Form2(); //Form2是新建的另外一个窗体

form.Show();

}
怎么解决这个Form2窗体闪现的问题,我想让Form2一直显示
PS:我一定要用线程来调用ShowForm()这方法,所以不要问我为什么不直接调用(因为这只是一个例子)
展开
 我来答
设计人生3n
2014-09-11 · 超过26用户采纳过TA的回答
知道答主
回答量:34
采纳率:0%
帮助的人:44万
展开全部
方案一:
private void btn_Click( ... )

{
Form2 form=new Form2(); //Form2是新建的另外一个窗体
form.Show();
}
方案二:

private void button1_Click(object sender, EventArgs e)
{

Thread a = new Thread(new ThreadStart(fs));
a.Start();
}

delegate void af();
private void fs()
{
this.Invoke(new af(afd));
}

private void afd()
{
Form2 f = new Form2();
f.Show();
}
追问
感谢您的回答。
针对方案一:我在末尾备注说的很清楚了
针对方案二:不知您是否试过,我试过也是不行的
追答
我在百度上回复的帖子都会调试通过才会回答的,
这样吧,你把你的出错信息发出来,我来看一下是怎么回事。
xttcqw
2014-09-11 · TA获得超过170个赞
知道小有建树答主
回答量:359
采纳率:0%
帮助的人:188万
展开全部
Form f1 = new Form();
f1.ShowDialog();
这样行吗?
追问
试过了,不可以
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
kcxnvbdbd
2014-09-11 · TA获得超过523个赞
知道小有建树答主
回答量:885
采纳率:50%
帮助的人:615万
展开全部
form.show() 改成 form.ShowDialog()
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式