zoukankan      html  css  js  c++  java
  • 自动生成按钮位置控制

    private void FrmdiepSheBei_Load()
    {
      width = panel2.Width / 15;  ////面板宽度
      timer1.Interval = dp.getboardTime();
      addButton("", "在用", panel2, "龙华厂"); 
    }

    private void addButton(String strDept, String strState, Panel p, String strFName)
    {
    p.Controls.Clear();
    blist.Clear();
    st = dp.getColorSheBei();
    DataTable dtGree = st.Tables[0];
    DataTable dtRed = st.Tables[1];
    dt = dp.getSheBei(strDept, strState, strFName);

    if (strState == "正常")
    {
    DataTable dt2 = dp.getSheBei(strDept, "在用", strFName);
    for (int i = 0; i < dt2.Rows.Count; i++)
    {
    dt.ImportRow(dt2.Rows[i]);
    }

    }

    Button[] bn = new Button[dt.Rows.Count];

    int x = 50;
    int y = 0;

    for (int i = 0; i < dt.Rows.Count; i++)
    {
    bn[i] = new Button();
    bn[i].Name = i.ToString();
    bn[i].Text = dt.Rows[i][0].ToString();
    bn[i].Font = new System.Drawing.Font("宋体", 25, FontStyle.Regular);
    bn[i].Size = new System.Drawing.Size(width, height);

    x = (width + 18) * (i % 12);
    bn[i].Location = new Point(x, y);

    if ((i + 1) % 12 == 0 && i != 0)
    {
    y = (height + y) + 20;
    }
    ///在用
    if (strState == "在用")
    {

    bn[i].BackColor = Color.DodgerBlue;

    //判断停用
    for (int yw = 0; yw < dtGree.Rows.Count; yw++)
    {
    if (bn[i].Text == dtGree.Rows[yw]["jiCode"].ToString())
    {
    //设备背景色为绿色
    bn[i].BackColor = Color.Green;
    break;
    }
    }
    //判断是否为维修中
    for (int r = 0; r < dtRed.Rows.Count; r++)
    {
    if (bn[i].Text == dtRed.Rows[r]["jiCode"].ToString())
    {
    //设备背景色为红色
    bn[i].BackColor = Color.Red;
    blist.Add(bn[i]);
    break;
    }

    }

    }

    bn[i].FlatStyle = System.Windows.Forms.FlatStyle.Flat;
    bn[i].MouseHover += new System.EventHandler(this.buttonAll_MouseHove);

    p.Controls.Add(bn[i]);

    }

    #region 遍历窗体上的所有Button 添加到blist 集合中
    //遍历Form上的所有控件
    //foreach (System.Windows.Forms.Control control in this.Controls)
    //{
    // if (control is System.Windows.Forms.Button)
    // {
    // System.Windows.Forms.Button btn = (System.Windows.Forms.Button)control;
    // if (btn.Name != "button3" && btn.BackColor == Color.Red)
    // {
    // blist.Add(btn);
    // }

    // }
    //}
    #endregion

    }

  • 相关阅读:
    C#使用进度条,并用线程模拟真实数据 ProgressBar用法(转)
    装饰者模式(Decorator Pattern)C#版本的
    C# Stream篇(七) -- NetworkStream
    C# Stream篇(六) -- BufferedStream
    C# Stream篇(五) -- MemoryStream
    C# Stream篇(四) -- FileStream
    C# Stream篇(三) -- TextWriter 和 StreamWriter
    C# Stream篇(二) -- TextReader 和StreamReader
    C# Stream篇(—) -- Stream基类
    代理模式(Proxy Pattern)C#版本的
  • 原文地址:https://www.cnblogs.com/VictorBlog/p/5193309.html
Copyright © 2011-2022 走看看