• 解决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/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    exp 和imp 与expdp / impdp 区别
    nginx优化
    nginx root alias proxypass
    mysql3
    logrotate 用法
    SQL执行顺序
    http与RPC的关系
    docker
    windows 时间同步
    Java生成指定长度的随机字符串
  • 原文地址:https://www.cnblogs.com/pains/p/1694103.html
Copyright © 2020-2023  润新知