解决DevExpress TreeList控件BestFitColumns()不起作用的问题

  这个控件的Demo中BestFitColumns()是可以执行成功的,而我的不行,dev官网上有人提的问题都没人回答。

  我们的项目中界面不仅仅是在窗体里画的,窗体的基类里只画了大体的布局控件(每种布局就表示一种类型的窗体,实际业务的窗体继承适合自己的窗体),将窗体画分了各个区域,每个区域中的控件是由一个叫做所谓的外观层(这个外观层比设计模式和其他开源等项目中的外观层意义不大一样,比它们要复杂)创建的,每种窗体基类只要访问外观的对象获得控件添加到相应区域就行,其他的什么都不做,与控件相关的事件和像下拉框中的编辑项都由外观层的相应类完成,实际业务窗体给外观的各对象赋值就行,业务逻辑层的对象必须实现自己需要实现的接口,因为外观层中只知道这些接口,这样实现简单创建界面的同时还实现了界面层和业务层的低耦合。

  但我创建一种使用TreeList控件的基窗体时,我在外观层中调用BestFitColumns()不起作用,原因是TreeList控件还未添加到实际的窗体中,它还不知道自己的大小,所以它的列无法按内容自适应宽度,我把它移到基窗体的添加TreeList控件之后,但此时还是不成功,我在添加TreeList控件之后和调用BestFitColumns()之前,调用TreeList控件的ForceInitialize(),这样BestFitColumns()就起作用了。这样它的意思就是TreeList控件首先已经添加到窗体,然后本身也我完成了初始化,然后它才能按内容自适应宽度,希望这个对遇到同样问题的人有帮助,差点忘了,我们的dev是9.3的。

  目前这个项目的架构接近尾声了,还做了一个实际的窗体和一个测试的窗体,很好的完成预期目标,就是不知道这样的架构能不能容易的理解和掌握,注释是很全了,几乎每个地方都有,接下来会画架构的类图和简单的使用说明,然后最好是实际演示做一个业务模块。这段时间还在做一个额外的单子(挣点小钱,呵呵),是有点累的,真想能多点精力和时间。

posted @   Rick Carter  阅读(4608)  评论(0编辑  收藏  举报
编辑推荐:
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
阅读排行:
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
点击右上角即可分享
微信分享提示