C#中,我写了一个TabControl,然后有6个TabPage,做TabPage切换时问题。

我每个TabPage都会重新加载一个Form.cs窗口,同时每个Form.cs里都有很多的控件,这样我在切换TabPage时就会出现延时,加载缓慢问题,我百度很多人都告诉我说要我用多线程弄,可我还是个小白,所以请教下懂的朋友,能不能给点详细的建议,现在切换界面时会出现延时,卡顿,这是不好的现象,我要解决这个问题。把TabControl全部换成button也是可以的的,但是优化也不怎么会,望会的朋友给建议,谢谢。

第1个回答  2016-07-05
这个跟多线程没什么关系,多线程主要是用来处理大批量数据的的,不是用在这里。感觉你的问题如果不是用tabpage来加载form,那本身就没这个问题了,你既然用了这个方法,那完全可以在程序启动的时候,先初始化所有的form(如果耗时较多,可以加个进度条),放在公用变量或者数组里,然后切换到每个tabpage的时候,就直接用好了,不必重新初始化。追问

上面偏蓝的是TabControl,TabPage里存放的是一个子窗体,就是在子窗体切换时会导致卡,然后一个子视图里拖动TrackBar都会有一点延时,感觉需要大的优化。

追答

切换的已经说过了,至于后面的,你开发用的机器配置怎么样,如果很一般建议用台配置好点的机器测试一下,如果正常那就不是什么问题。

追问

我的所有的form都是直接拖拽出来的控件,好像吃初始化并没有多大用,我觉得是初始化激活了还是存在内存中,然后就相当于6个都在内存中,然后控件就多了,然后切换,拖拽都会卡顿,我不是很懂,对C#还是个小白,我我也不知怎样才能先初始化所有的form,还望高手留个Q,我加你问下,不甚感激。

第2个回答  2019-11-03
vc
tab
control
使用简单例子
1.
新建一个mfc工程--mfc
appwizard(exe),
取名tabtest,
选择dialog
based,
然后finish.
2.
在话框上添加tab
control控件并在property属性中设置id为idc_tab.
在classwizard为其添加变量,
变量名为m_tab.
类型为cta
相似回答