首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

窗口不能移动,该如何处理

2012-01-24 
窗口不能移动我在窗口里面添加了listview控件,当运行使得listview里面的内容在不断的更新变化的时候,我按

窗口不能移动
我在窗口里面添加了listview控件,当运行使得listview里面的内容在不断的更新变化的时候,我按窗口中所有的按钮,都毫无反应,并且也不能移动窗口了

我该怎么做呢?

[解决办法]
不断的添加数据到控件中,阻塞了消息,用线程吧
[解决办法]
有可能是读取数据比较耗时间,阻塞了消息,你可以把读取数据的操作抛到另外的线程上去做,但一定记着数据读回来之后更新listview的操作还要用Invoke把它同步回主线程.
[解决办法]
不断的更新变化时,应该占用了许多资源,所以产生不能移动的假象
[解决办法]
private void button1_Click(object sender, System.EventArgs e)
{
start();
}
private void count()
{}

private void start()
{
Thread t = new Thread(new ThreadStart(count));
t.Start();
}
[解决办法]
1.看看你在往listView里面添加数据的前后有没有用BeginUpdate/EndUpdate方法,如果没有加上。
listView1.BeginUpdate();
。。。listView1.Items.Add();
listView1.EndUpdate();

2. 看看BeginUpdate/EndUpdate之间有没有从数据库查询,或者文件/网络的读写操作,如果有,按照RedGoldFish大哥的说法移到后台线程去做,可以使用BackgroundWorker来帮助协调后台工作线程和前台UI线程之间的通信。
[解决办法]
UI线程被阻塞,建议向ListView填充数据时用后台线程

热点排行