zoukankan      html  css  js  c++  java
  • FlowLayoutPanel autowrapping doesn't work with autosize

    There is no such thing like impossible in software development. Impossible just takes longer.

    I've investigated the problem. If there is really need for Flow Layout, it can be done with a bit of work. Since FlowLayoutPanel lays out the controls without particularly thinking about the number of rows/columns, but rather on cumulative width/height, you may need to keep track of how many controls you've already added. First of all, set the autosize to false, then hook your own size management logic to the ControlAdded/ControlRemoved events. The idea is to set the width and height of the panel in such a way, that you'll get your desired number of 'columns' there

    Dirty proof of concept:

    privatevoid flowLayoutPanel1_ControlAdded(object sender,ControlEventArgs e){int count =this.flowLayoutPanel1.Controls.Count;if(count %4==0){this.flowLayoutPanel1.Height=this.flowLayoutPanel1.Height+70;}}

    if the panel has initially width for 4 controls, it will generate row for new ones. ControlRemoved handler should check the same and decrease the panel height, or get all contained controls and place them again. You should think about it, it may not be the kind of thing you want. It depends on the usage scenarios. Will all the controls be of the same size? If not, you'd need more complicated logic.

    But really, think about table layout - you can wrap it in a helper class or derive new control from it, where you'd resolve all the control placing logic. FlowLayout makes it easy to add and remove controls, but then the size management code goes in. TableLayout gives you a good mechanism for rows and columns, managing width and height is easier, but you'd need more code to change the placement of all controls if you want to remove one from the form dynamically.

  • 相关阅读:
    java 生成二维码
    Web Service测试工具小汇
    ADF控件ID变化引发JS无法定位控件的解决方法
    create database link
    Jdeveloper下Svn的使用
    TortoiseSVN菜单项功能说明
    JSFF或JSF页面加载时触发JavaScript之方法
    更改ORACLE归档路径及归档模式
    更改oracle归档模式路径
    将Oracle数据库设置为归档模式及非归档模式
  • 原文地址:https://www.cnblogs.com/zeroone/p/3621980.html
Copyright © 2011-2022 走看看