c# 循環界面控件

在 Winform 開發中,窗體(Form)就像一個大容器,能夠裝各類各樣的控件,包括 Panel控件。若是窗體是 Winform 中的最大的容器,那麼 Panel控件能夠算是老二,它專門用於軟件界面的排版,至關於 Web 開發中的層(div),幾乎全部控件均可以包含到 Panel 中,包括窗體。佈局

  把控件包含到 Panel 中,一方面是爲界面佈局美觀(填充不一樣的背景顏色或圖片),另外一方面便於對子控件進行相關的操做。能夠經過遍歷的方式獲取控件中包含的全部子控件,從而實現對它們的操做,下面就看如何遍歷窗體中和 Panel 中的子控件。this

 

  1、C#遍歷窗體控件spa

  主要遍歷屬於窗體(Form)的控件(Controls),假如窗體中有 Panel、Button 和 TextBox 控件,遍歷代碼以下:code

  /// <summary>
  /// Winform C#遍歷窗體控件
  /// </summary>
  /// <param name="ctrlName">控件名稱</param>
  public void ForeachFormControls(string ctrlName)
  {
    foreach (Control ctrl in this.Controls)
    {
      if (ctrl is Panel)
      {
        //相關操做代碼
        ctrl.BackColor = Color.Aquamarine;
      }
      else if (ctrl is Button)
      {
        ctrl.ForeColor = Color.RoyalBlue;
      }
      else if (ctrl is TextBox)
      {
        ctrl.Text = null;
      }
orm

      //根據控件名稱找某個控件
      if(ctrl.Name.Equals(ctrlName))
      {
        vctrl.Name = string.Empty;
      }
    }
  }
blog

  上面的代碼,只是根據控件的類型和傳遞的控件名稱進行了一些隨意操做,能夠根據具體需求把它改成所需操做。圖片

 

 

  2、C# Winform遍歷控件之遍歷 Panel 中的子控件開發

  遍歷方法跟遍歷窗體中的控件相同,只不過 this 要改成 Panel 的名稱,假如 Panel控件中只包含 Button 和 TextBox 子控件,代碼以下:string

  /// <summary>
  /// C#遍歷子控件
  /// </summary>
  /// <param name="ctrlName">控件名稱</param>
  public void ForeachPanelControls(string ctrlName)
  {
    foreach (Control ctrl in panel1.Controls)
    {
      if (ctrl is Button)
      {
        if (ctrl.Name.Equals(ctrlName))
          ctrl.ForeColor = Color.RoyalBlue;
        else
          ctrl.ForeColor = Color.SkyBlue;
      }
      else if (ctrl is TextBox)
      {
        if (ctrl.Name.Equals(ctrlName))
          ctrl.Name = "當前值";
        else
          ctrl.Text = null;
      }
    }
  }
form

 

 

二、局部控件爲userControl(uWgter),在TabelLayoutPanel查詢userControl(tlp_wgters)的存在,並加入list

PubSource.Wgters = new List<uWgter>();
            foreach (Control ct in this.tlp_Wgters.Controls)
            {
                if (ct is uWgter)
                {
                    PubSource.Wgters.Add((uWgter)ct);
                }
            }

 

遍歷list中uWgter,斷連                   foreach(uWgter wgter in PubSource.Wgters)
                {
                    wgter.DisconnectWgter();
                }
相關文章
相關標籤/搜索