我有一个带有顶部和底部面板的表格 用户将在顶部面板中进行选择,并且每次他们在一个关键字段上更改值时,我会销毁底部面板中的控件,然后对另一个应用程序(通过COM)进行耗时的调用并添加一个列表添加新控件。此刷新过程需要几秒钟。
我希望能够在刷新底部面板时禁用底部面板,并允许用户继续在顶部面板中工作。当然,这是在一个线程上运行的所有GUI。
画报:
我使用BackgroundWorker,但当然它不能直接在主线程的GUI上创建控件。
我是否可以这样做,即允许GUI的一部分被禁用并在后台重建,而用户继续在另一部分工作?
答案 0 :(得分:3)
我是否可以这样做,即允许GUI的一部分被禁用并在后台重建,而用户继续在另一部分工作?
一般来说,没有。必须在UI线程上创建和使用GUI元素/控件,而不是其他任何地方。
创建此类场景的最佳方法通常是使用BackgroundWorker
或其他技术在后台线程上获取所需的数据,然后在数据生成后构建UI完全加载。