做了一个程序,当我打开一个窗体时,开始计算,然后计算结果在窗口显示,当DocumentCompleted后,执行打印窗体的东西,然后自动关闭窗体。遇到的问题是,有一类的结果的计算比较多、时间比较长,那个窗体挡在所有的窗体前,而且对它进行不了操作,也不能最小化。请问各位大大,怎么才能让这个窗体在计算时不妨碍别的窗体的操作呢。
解决方案 »
- C#中怎么将int数组传递给ref int型参数
- 有偿求助 开源SharpDevelop4.0能不需要net3.5在net4就运行吗?
- VS2008怎么这么卡啊 谁有办法让他快点啊
- sql转到C#中如何实现
- 继承问题this,base
- 并发操作的问题
- 各位高手,DataGridView的问题!(急)
- 关于C#连接数据库的问题
- 请高手帮忙:日期型数据写入sql2000数据库的问题
- 求一个基于winio.dll驱动获取键盘的例子
- 写出一个函数将字符串STR="a,123;b,456;c,789"存入HashMap中。
- C#的Winform程序,sql 分组统计,然后在dataGridView中显示
我那个窗体里面有WbbBrowser,结果出错了。
当前线程不在单线程单元中,因此无法实例化 ActiveX 控件“8856f961-340a-11d0-a96b-00c04fd705a2”。
请问这个错误怎么解决呢?
在循环的最后一句写上
Application.DoEvents();//这句的作用就是在系统有空的时候把处理交还UI,这样界面就不死了。往往就是循环造成
Application.DoEvents();
加到你那个循环的内部,这样还是会一卡一卡的,但是不会一直卡了。
另外给你个建议,开始循环时,this.hide(); 结束计算时this.show();
{
this.Show();
} private void Form1_Load(object sender, EventArgs e)
{
this.Hide();
webBrowser1.Url = new Uri("http://www.google.com");
}
private void webReport_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
this.webReport.Print();
Close();
}
{
this.Show();
this.webReport.Print();
this.Close();
} private void Form1_Load(object sender, EventArgs e)
{
this.Hide();
// Counting
}
{
this.Show();
this.webBrowser1.Print();
} private void Form1_Load(object sender, EventArgs e)
{
this.Hide();
webBrowser1.Url = new Uri("http://www.google.com");
}
只有在载入页面完毕才会被触发
和什么时候hide或者show无关啊