<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      WinForm容器內控件批量效驗是否允許為空?設置是否只讀?設置是否可用等方法分享

      WinForm容器內控件批量效驗是否允許為空?設置是否只讀?設置是否可用等方法分享

       

        在WinForm程序中,我們有時需要對某容器內的所有控件做批量操作、如批量判斷是否允許為空?批量設置為只讀、批量設置為可用或不可用等常用操作,本文分享這幾種方法,起拋磚引玉的作用,歡迎討論!

       1、  清除容器控件內里面指定控件的值的方法

              /// <summary>
              /// 清除容器里面指定控件的值(通過控件的AccessibleName屬性設置為"EmptyValue")
              /// </summary>
              /// <param name="parContainer">容器控件</param>
              public static void EmptyControlValue(Control parContainer)
              {
                  for (int index = 0; index < parContainer.Controls.Count; index++)
                  {
                      //如果是容器類控件,遞歸調用自己
                      if (parContainer.Controls[index].HasChildren && !parContainer.Controls[index].GetType().Name.ToLower().StartsWith("uc"))
                      {
                          EmptyControlValue(parContainer.Controls[index]);
                      }
                      else
                      {
                          if (parContainer.Controls[index].AccessibleName == null ||
                              !parContainer.Controls[index].AccessibleName.ToLower().Contains("emptyvalue"))
                          {
                              continue;
                          }
      
                          switch (parContainer.Controls[index].GetType().Name)
                          {
                              case "Label":
                                  break;
                              //case "ComboBox":
                              //    ((ComboBox)(parContainer.Controls[index])).Text = "";                           
                              //    break;
                              case "TextBox":
                                  ((TextBox)(parContainer.Controls[index])).Text = "";
                                  break;
                              case "UcTextBox":
                                  ((UcTextBox)(parContainer.Controls[index])).Text = "";
                                  break;
                              case "RichTextBox":
                                  ((RichTextBox)(parContainer.Controls[index])).Text = "";
                                  break;
                              case "MaskedTextBox":
                                  ((MaskedTextBox)(parContainer.Controls[index])).Text = "";
                                  break;
                              case "UcMaskTextBox":
                                  ((UcMaskTextBox)(parContainer.Controls[index])).Text = "";
                                  break;
                              case "RadioButton":
                                  ((RadioButton)(parContainer.Controls[index])).Checked = false;
                                  break;
                              case "CheckBox":
                                  ((CheckBox)(parContainer.Controls[index])).Checked = false;
                                  break;
                          }
                      }
                  }
              }
      

        

        要清空控件的值、只需調用:  

      EmptyControlValue(容器控件名稱);
      

       2、斷一容器控件內某控件的值是否可以為空?

              /// <summary>
              /// 判斷一容器控件內某控件的值是否可以為空(通過控件的AccessibleName屬性設置為"NotNull")
              /// <remarks>
              ///     說明:
              ///         此方法顯示提示信息,對于相應取值不能為空的控件,應設置其“Tag”屬性,以友好提示信息。
              /// </remarks>
              /// </summary>
              /// <param name="parContainer">容器控件</param>
              public static bool ControlValueIsEmpty(Control parContainer)
              {
                  bool returnValue = true;
                  string hintInfo = string.Empty;
                  for (int index = 0; index < parContainer.Controls.Count; index++)
                  {
                      //如果是容器類控件,遞歸調用自己
      
                      if (parContainer.Controls[index].HasChildren && !parContainer.Controls[index].GetType().Name.ToLower().StartsWith("uc"))
                      {
                          ControlValueIsEmpty(parContainer.Controls[index]);
                      }
                      else
                      {
                          if (string.IsNullOrEmpty(parContainer.Controls[index].AccessibleName))
                          {
                              continue;
                          }
      
                          if (!parContainer.Controls[index].AccessibleName.ToLower().Contains("notnull")
                              && !parContainer.Controls[index].GetType().Name.ToLower().Contains("mask"))
                          {
                              continue;
                          }
      
                          switch (parContainer.Controls[index].GetType().Name)
                          {
                              case "Label"://排除Label
                                  break;
                              case "ComboBox":
                              case "ComboBoxEx":
                              case "UcComboBoxEx":
                                  if (parContainer.Controls[index] is ComboBox)
                                  {
                                      if (((ComboBox)(parContainer.Controls[index])).Text.Trim() == string.Empty)
                                      {
                                          hintInfo += GetControlName((ComboBox)parContainer.Controls[index]) + "\n";
                                          //ShowInfo((ComboBox)parContainer.Controls[index], " 不能為空!");
                                          //((ComboBox)(parContainer.Controls[index])).Focus();
                                          returnValue = false;
                                      }
                                  }
                                  else
                                  {
                                      if (((UcComboBoxEx)(parContainer.Controls[index])).Text.Trim() == string.Empty)
                                      {
                                          hintInfo += GetControlName((UcComboBoxEx)parContainer.Controls[index]) + "\n";
                                          //ShowInfo((UcComboBoxEx)parContainer.Controls[index], " 不能為空!");
                                          //((UcComboBoxEx)(parContainer.Controls[index])).Focus();
                                          returnValue = false;
                                      }
                                  }
                                  break;
                              case "TextBox":
                              case "UcTextBox":
                                  if (parContainer.Controls[index] is TextBox)
                                  {
                                      if (((TextBox)(parContainer.Controls[index])).Text.Trim() == string.Empty)
                                      {
                                          hintInfo += GetControlName((TextBox)parContainer.Controls[index]) + "\n";
                                          //ShowInfo((TextBox)parContainer.Controls[index], " 不能為空!");
                                          //((TextBox)(parContainer.Controls[index])).Focus();
                                          returnValue = false;
                                      }
                                  }
                                  else
                                  {
                                      if (((UcTextBox)(parContainer.Controls[index])).Text.Trim() == string.Empty)
                                      {
                                          hintInfo += GetControlName((UcTextBox)parContainer.Controls[index]) + "\n";
                                          //ShowInfo((UcTextBox)parContainer.Controls[index], " 不能為空!");
                                          //((UcTextBox)(parContainer.Controls[index])).Focus();
                                          returnValue = false;
                                      }
                                  }
                                  break;
                              case "RichTextBox":
                                  if (((RichTextBox)(parContainer.Controls[index])).Text.Trim() == string.Empty)
                                  {
                                      hintInfo += GetControlName((RichTextBox)parContainer.Controls[index]) + "\n";
                                      //ShowInfo((RichTextBox)parContainer.Controls[index], " 不能為空!");
                                      //((RichTextBox)(parContainer.Controls[index])).Focus();
                                      returnValue = false;
                                  }
                                  break;
                              case "MaskedTextBox":
                              case "UcMaskTextBox":
                                  string mskTxtValue = string.Empty;
                                  object controlChinaeseName = null;
                                  if (parContainer.Controls[index] is MaskedTextBox)
                                  {
                                      mskTxtValue = ((MaskedTextBox)(parContainer.Controls[index])).Text;
                                      controlChinaeseName = ((MaskedTextBox)(parContainer.Controls[index])).Tag ?? ((MaskedTextBox)(parContainer.Controls[index])).Name;
                                  }
                                  else
                                  {
                                      mskTxtValue = ((UcMaskTextBox)(parContainer.Controls[index])).Text;
                                      controlChinaeseName = ((UcMaskTextBox)(parContainer.Controls[index])).Tag ?? ((UcMaskTextBox)(parContainer.Controls[index])).Name;
                                  }
      
                                  if (mskTxtValue.Substring(0, 4).Trim().Length > 0) //如果有有值,則要對輸入的日期進行格式判斷
                                  {
                                      if (DateTimeHelper.IsDate(mskTxtValue))
                                      {
                                          //把用戶輸入的日期數據控制在(1754-01-01 至 9999-12-31這間),這主要解決SqlServer與C#日期范圍的沖突
                                          if (DateTimeHelper.ToDate(mskTxtValue) < DateTimeHelper.ToDate("1754-01-01") ||
                                              DateTimeHelper.ToDate(mskTxtValue) >= DateTimeHelper.ToDate("9999-12-31"))
                                          {
                                              MessageBoxHelper.ShowErrorMsg("[" + controlChinaeseName + "] 日期范圍不正確! /n正確日期范圍為:1754-01-01 至 9999-12-31");
                                              returnValue = false;
                                          }
                                      }
                                      else
                                      {
                                          MessageBoxHelper.ShowErrorMsg("[" + controlChinaeseName + "] 日期格式不正確! 正確格式如:2012-01-01");
                                          returnValue = false;
                                      }
                                  }
                                  else
                                  {
                                      if (mskTxtValue.Substring(0, 5).Equals("    -") && parContainer.Controls[index].AccessibleName.ToLower() == "notnull")
                                      {
                                          MessageBoxHelper.ShowErrorMsg("[" + controlChinaeseName + "]不能為空!");
                                          returnValue = false;
                                      }
                                  }
                                  break;
                              default:
                                  break;
                          }
                      }
                  }
                  if (!string.IsNullOrEmpty(hintInfo.Trim()))
                  {
                      MessageBoxHelper.ShowWarningMsg(hintInfo + "不能為空!");
                  }
                  return returnValue;
              }
      
              private static string GetControlName(Control ctr)
              {
                  if (ctr.Tag == null)
                  {
                      return ctr.Name;
                  }
                  else
                  {
                      return ctr.Tag.ToString();
                  }
              }
      
              private static void ShowInfo(Control ctr, string info)
              {
                  if (ctr.Tag == null)
                  {
                      MessageBoxHelper.ShowWarningMsg(ctr.Name + info);
                  }
                  else
                  {
                      MessageBoxHelper.ShowWarningMsg(ctr.Tag + info);
                  }
              }
      

        方法“ControlValueIsEmpty”可以用于批量判斷指定容器內的所有控件是否可以為空,對于不為空的可以做批量提示顯示,設置如下圖所示:

       3、設置容器控件中包含的控件為只讀?

              /// <summary>
              /// 設置容器控件中包含的控件為只讀(通過控件的AccessibleName屬性設置為"CanReadOnly")
              /// </summary>
              /// <param name="parContainer">容器控件</param>
              /// <param name="isReadOnly">是否為只讀,true是只讀,false則相反</param>>
              public static void SetControlReadOnly(Control parContainer, bool isReadOnly)
              {
                  for (int index = 0; index < parContainer.Controls.Count; index++)
                  {
                      //如果是容器類控件,遞歸調用自己
                      if (parContainer.Controls[index].HasChildren)
                      {
                          SetControlReadOnly(parContainer.Controls[index], isReadOnly);
                      }
                      else
                      {
                          if (parContainer.Controls[index].AccessibleName == null &&
                            !parContainer.Controls[index].AccessibleName.ToLower().Contains("canreadonly"))
                          {
                              continue;
                          }
      
                          switch (parContainer.Controls[index].GetType().Name)
                          {
                              case "TextBox":
                              case "UcTextBox":
                                  if (parContainer.Controls[index] is TextBox)
                                  {
                                      ((TextBox)(parContainer.Controls[index])).ReadOnly = isReadOnly;
                                  }
                                  else
                                  {
                                      ((UcTextBox)(parContainer.Controls[index])).ReadOnly = isReadOnly;
                                  }
      
                                  break;
                              case "RichTextBox":
                                  ((RichTextBox)(parContainer.Controls[index])).ReadOnly = isReadOnly;
                                  break;
                              case "MaskedTextBox":
                              case "UcMaskTextBox":
                                  if (parContainer.Controls[index] is MaskedTextBox)
                                  {
                                      ((MaskedTextBox)(parContainer.Controls[index])).ReadOnly = isReadOnly;
                                  }
                                  else
                                  {
                                      ((UcMaskTextBox)(parContainer.Controls[index])).ReadOnly = isReadOnly;
                                  }
                                  break;
                              case "ComboBox":
                                  ((ComboBox)(parContainer.Controls[index])).Enabled = !isReadOnly;
                                  break;
                              case "Button":
                              case "UcButton":
                                  if (parContainer.Controls[index] is Button)
                                  {
                                      ((Button)(parContainer.Controls[index])).Enabled = !isReadOnly;
                                  }
                                  else
                                  {
                                      ((UcButton)(parContainer.Controls[index])).Enabled = !isReadOnly;
                                  }
                                  break;
                              default:
                                  break;
                          }
                      }
                  }
              }
      

        方法“SetControlReadOnly”的使用方式與上面的方法相同,只要設置控件的“AccessibleName”屬性為“CanReadOnly”即可。

       4、設置容器控件中包含的控件是否可用?

              /// <summary>
              /// 設置容器控件中包含的控件是否可用(通過控件的AccessibleName屬性設置為"Enabled")
              /// </summary>
              /// <param name="parContainer">容器控件</param>
              /// <param name="isEnabled">是否為用可,true:可用,false:不可用</param>>
              public static void SetControlEnabled(Control parContainer, bool isEnabled)
              {
                  for (int index = 0; index < parContainer.Controls.Count; index++)
                  {
                      //如果是容器類控件,遞歸調用自己
                      if (parContainer.Controls[index].HasChildren)
                      {
                          SetControlEnabled(parContainer.Controls[index], isEnabled);
                      }
                      else
                      {
                          if (parContainer.Controls[index].AccessibleName == null &&
                             !parContainer.Controls[index].AccessibleName.ToLower().Contains("Enabled"))
                          {
                              continue;
                          }
      
                          //(parContainer.Controls[index]).BackColor = System.Drawing.Color.White;//設置當前控件的背景色為白色
      
                          switch (parContainer.Controls[index].GetType().Name)
                          {
                              case "Label":
                                  break;
                              default:
                                  parContainer.Controls[index].Enabled = isEnabled;
                                  break;
                          }
                      }
                  }
              }
      

        方法“SetControlEnabled”用于設置容器控件內的指定控件的Enabled屬性。

        同時需要說明的時,這些方法可以同時設置,只需要設置控件的“AccessibleName”為這種類型即可:EmptyValue| NotNull |Enabled|CanReadOnly,這樣設置即可,對于提示信息的顯示,我們可以設置控件的Tag屬性。

       

      posted @ 2015-08-10 10:52  .NET快速開發框架  閱讀(2167)  評論(1)    收藏  舉報
      主站蜘蛛池模板: 亚洲成a人无码av波多野| 日韩 一区二区在线观看| 亚洲成A人片在线观看无码不卡| 人人澡人人透人人爽| 国产精品特级毛片一区二区三区| 超碰成人精品一区二区三| 欧美另类精品xxxx人妖| 亚洲一本二区偷拍精品| 激情伊人五月天久久综合| 国内精品视频一区二区三区八戒| 国产一二三五区不在卡| 欧美一区二区三区成人久久片| 亚洲全乱码精品一区二区| 亚洲日本欧美日韩中文字幕| 国产精品中文第一字幕| 熟女一区二区中文在线| 国产高清视频在线播放www色| 亚洲国产美国产综合一区| 亚洲人成网站999久久久综合| 亚洲岛国av一区二区| 久久综合97丁香色香蕉| 国产一级老熟女自拍视频| 俺也来俺也去俺也射| 精品久久精品久久精品九九| 久久精品国产亚洲av麻豆长发| 成人看的污污超级黄网站免费| 天啦噜国产精品亚洲精品| 永久免费av无码网站直播| 成人亚欧欧美激情在线观看| 国产精品激情| 麻豆国产传媒精品视频| 久久久国产成人一区二区| 好男人社区神马在线观看www| 久久天天躁狠狠躁夜夜躁2o2o| 亚洲色大成网站www永久一区| 在线视频一区二区三区色| 色爱综合激情五月激情| 久久婷婷五月综合色国产免费观看| 九九热在线精品免费视频| 性欧美大战久久久久久久| 亚洲情色av一区二区|