解决DevExpress TreeList控件BestFitColumns()不起作用的问题
这个控件的Demo中BestFitColumns()是可以执行成功的,而我的不行,dev官网上有人提的问题都没人回答。
我们的项目中界面不仅仅是在窗体里画的,窗体的基类里只画了大体的布局控件(每种布局就表示一种类型的窗体,实际业务的窗体继承适合自己的窗体),将窗体画分了各个区域,每个区域中的控件是由一个叫做所谓的外观层(这个外观层比设计模式和其他开源等项目中的外观层意义不大一样,比它们要复杂)创建的,每种窗体基类只要访问外观的对象获得控件添加到相应区域就行,其他的什么都不做,与控件相关的事件和像下拉框中的编辑项都由外观层的相应类完成,实际业务窗体给外观的各对象赋值就行,业务逻辑层的对象必须实现自己需要实现的接口,因为外观层中只知道这些接口,这样实现简单创建界面的同时还实现了界面层和业务层的低耦合。
但我创建一种使用TreeList控件的基窗体时,我在外观层中调用BestFitColumns()不起作用,原因是TreeList控件还未添加到实际的窗体中,它还不知道自己的大小,所以它的列无法按内容自适应宽度,我把它移到基窗体的添加TreeList控件之后,但此时还是不成功,我在添加TreeList控件之后和调用BestFitColumns()之前,调用TreeList控件的ForceInitialize(),这样BestFitColumns()就起作用了。这样它的意思就是TreeList控件首先已经添加到窗体,然后本身也我完成了初始化,然后它才能按内容自适应宽度,希望这个对遇到同样问题的人有帮助,差点忘了,我们的dev是9.3的。
目前这个项目的架构接近尾声了,还做了一个实际的窗体和一个测试的窗体,很好的完成预期目标,就是不知道这样的架构能不能容易的理解和掌握,注释是很全了,几乎每个地方都有,接下来会画架构的类图和简单的使用说明,然后最好是实际演示做一个业务模块。这段时间还在做一个额外的单子(挣点小钱,呵呵),是有点累的,真想能多点精力和时间。
作者:Rick Carter
出处:http://pains.cnblogs.com/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库