• 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.

  • 相关阅读:
    MySQL记录
    yolo
    python 深度学习 库文件安装出错汇总
    OPENCV安装
    vs code安装leetcode插件
    打印机
    标注工具
    训练源代码训练数据集
    c++ 学习
    复现基于Pytorch的YOLOv3所踩的坑~
  • 原文地址:https://www.cnblogs.com/zeroone/p/3621980.html
Copyright © 2020-2023  润新知