zoukankan      html  css  js  c++  java
  • C#遍历容器存储顺序

    foreach (Control c in mForm.Controls)
    {

    }

    存储的顺序是依据mForm上添加控件的顺序,

                m1.Parent = myPanel;

                m3.Parent = myPanel;

                m4.Parent = myPanel;

                m2.Parent = myPanel;

    那么存储的顺序就是1 3 4 2

    如果要存储界面上多个容器,可以进行递归

    但是如果

                m1.Parent = myPanel;

                m3.Parent = myPanel;

                m4.Parent = myPanel;

                m2.Parent = myPanel;

         m2.BringToFront();

    由于m2调用函数bringtofront,顺序将变成1234。。。。。。真是郁闷

    为什么我需要解决这个问题:

      因为我是在窗体初始化的时候存贮容器中所有的控件的信息,然后用来变化(缩放)。但是存贮之后我还要继续向容器添加控件,我想把这些新的控件转化回去,添加到初始化的List中。此时就要根据新加的控件是bringtofront了还是没有,决定是add到list末尾还是insert到合适的位置。

    4.23.22:06更新

      我已经找到了更好地办法,无论缩放后增删,直接将存储初始值的控件list除了list[0]---存储的容器大小,其余的重新计算重新存贮。虽然这样可能会导致因为多次增删,float和int不断转换出现误差,但是由于缩放过程并不会受影响(一直根据初始list变化),加上比较简单,相对来说对精度转换导致的误差的修正还是比较容易的(修改描画函数,不要让误差不断滚雪球越来越大)。

  • 相关阅读:
    CSS练习
    大作业“抽屉页面”html+css
    html练习代码
    协程-基于TCP的高并发通信
    协程-爬虫示例
    互斥锁,递归锁,信号量
    三层架构(我的理解及详细分析)
    递归算法经典实例小结(C#实现)
    使用XmlWriter写Xml
    使用XmlReader读Xml
  • 原文地址:https://www.cnblogs.com/littlemasterDa/p/6753953.html
Copyright © 2011-2022 走看看