Optimization 为控件应用flyweight模式?

Optimization 为控件应用flyweight模式?,optimization,controls,design-patterns,Optimization,Controls,Design Patterns,我的应用程序包含一个最多可以有100个单元格的网格。我想在每个单元格中添加一个自定义控件。自定义控件的所有实例都从共享存储库获取数据。除了用户可以独立地与每个单元格中的控件交互外,这些控件看起来完全相同 我现在面临的问题是,创建每个控件最多需要50毫秒,这意味着对于10x10网格,填充网格需要5秒钟 我正在考虑使用flyweight。我不熟悉这种模式。我唯一知道的是,它允许一个对象在多个“客户机”之间共享。但不确定如何完成,因为每个控件只能分配给一个单元格(父单元格)。我不能分享控制权,是吗 有

我的应用程序包含一个最多可以有100个单元格的网格。我想在每个单元格中添加一个自定义控件。自定义控件的所有实例都从共享存储库获取数据。除了用户可以独立地与每个单元格中的控件交互外,这些控件看起来完全相同

我现在面临的问题是,创建每个控件最多需要50毫秒,这意味着对于10x10网格,填充网格需要5秒钟

我正在考虑使用flyweight。我不熟悉这种模式。我唯一知道的是,它允许一个对象在多个“客户机”之间共享。但不确定如何完成,因为每个控件只能分配给一个单元格(父单元格)。我不能分享控制权,是吗


有什么建议吗?

这看起来有点像我试图在OS/2的演示管理器下创建我的第一个类似Excel的应用程序。如果我没记错的话,那是在1990年(是的,我已经那么老了)。事实证明,不可能像我在工作表中的单元格那样创建尽可能多的编辑控件

不要从一开始就创建所有控件,而是对控件进行“预览”。在大多数情况下,只显示文本就足够了,就像Excel一样

仅在确实需要时创建控件,例如用户单击单元格。保持此控件处于活动状态,直到用户单击另一个单元格,按enter键