跟楼上说的一样,这是“相似”的使用办法打开窗口方法一样
关闭的时候,如果你希望在关闭线程的时候就关闭窗口的话,记得把线程的background属性改成“true”
只是线程有两个打开窗口的方式,1、本身就是窗体(在建立线程后,start线程之后,窗口就显示了,你可以自己定义窗口的show方法,这样可以得到更多的显示效果);2、作为单独的实体来打开窗口(这样的话,就和一般的用法一样了)
关闭的时候,如果你希望在关闭线程的时候就关闭窗口的话,记得把线程的background属性改成“true”
只是线程有两个打开窗口的方式,1、本身就是窗体(在建立线程后,start线程之后,窗口就显示了,你可以自己定义窗口的show方法,这样可以得到更多的显示效果);2、作为单独的实体来打开窗口(这样的话,就和一般的用法一样了)
解决方案 »
- spread的问题
- 大家好,谁能帮我解决个问题,关于输出显示的!谢谢。。
- DataTable的返回值用null好吗?怎样的效率比较高
- 报错误ORA-00911 invalid character 报错误在红色的地方 在线等哦
- 如何获取系统的图标
- 菜鸟请教WINFORM问题,急在线等。。。。
- 新手简单问题,大侠看一眼
- 分享一个简单的群聊程序
- 请教大家一个问题,在c#中的datagrid中的第一列设置成DataGridBoolColumn.......
- !!!C#重大缺陷:C#居然有一个方面其它的语言都能做,而.NET里面居然没有相应的类库???
- 一个对象设计问题
- 如何讓dataGrid中的某一單元獲得光標?(請教﹗)
frmSplash frm=new frmSplash();
ThreatStart workerStart=new ThreatStart(frm.show);
Thread threadInit=new Thread(worderStart);
threadInit.Start();
然后在数据加载完关闭窗体: frm.close()
但是这样显示窗体的窗体界面不会及时刷新,动画也不会运行。
请问这是为什么?
有其他的方法达到我的目的吗?
要是不行可能就得在主线程中使用frm.Invoke函数吧——
先在主线程类中先定义委托(后面Control.Invoke方法将引用该委托):
public delegate void DelegateRefresh();
DelegateRefresh dlgtRfrsh = new DelegateRefresh(frm.Refresh);
然后在适当的位置刷新frm窗体,强制使其工作区无效并立即重绘自己和任何子控件:
frm.Invoke(dlgtRfrsh);
要是再不行,把两个线程颠倒一下吧。