• WinForm 清空界面控件值的小技巧


    在WinForm里面有时候需要清空自己输入内容或是选择的选项,以便重新操作流程,那么一般你是怎么清空界面各个控件值的呢?如果窗体里面控件,尤其是TextBox控件比较多的时候,代码里面是不是要设置每个控件的Text属性值为空呢?下面我用这个例子,来探讨下清空界面控件值的小技巧。而且还能复用。不必每个窗体都做这些枯燥、无聊的工作。


    一般的做法是在清除控件的事件里面添加下面这样的代码:

    代码
           private void btnClear_Click(object sender, EventArgs e)
            {
                
    this.txbAccount.Text = "";
                
    this.txbAddress.Text = "";
                
    this.txbCmp.Text = "";
                
    this.chkCash.Checked = false;
                
    this.cmbDepart.Text = "";

                
    //.............窗体里面各类要清空控件;
            }

     设想如果这样做,一个窗体我们清空界面需用10行代码,50个窗体那么就是500行代码,大量重复的劳动,如果我们用下面这种方法的话,那么项目里面代码量将大大减少,而且封装到类里面,可以重用。(当然这个函数还可以重载、扩展,以便适应不同的需求)

    private void btnClear_Click(object sender, EventArgs e)
    {
         ClearCntrValue(
    this.pnlContent);
    }
    代码
    /// <summary>
            
    /// 清除容器里面某些控件的值
            
    /// </summary>
            
    /// <param name="parContainer">容器类控件</param>
            public void ClearCntrValue(Control parContainer)
            {
                
    for (int index = 0; index < parContainer.Controls.Count; index++)
                {
                    
    // 如果是容器类控件,递归调用自己
                    if (parContainer.Controls[index].HasChildren)
                    {
                        ClearCntrValue(parContainer.Controls[index]);
                    }
                    
    else
                    {
                        
    switch(parContainer.Controls[index].GetType().Name)
                        {
                            
    case "TextBox":
                                parContainer.Controls[index].Text 
    = "";
                                
    break;
                            
    case "RadioButton":
                                ((RadioButton)(parContainer.Controls[index])).Checked 
    = false;
                                
    break;
                            
    case "CheckBox":
                                ((CheckBox)(parContainer.Controls[index])).Checked 
    = false;
                                
    break;
                            
    case "ComboBox":
                                ((ComboBox)(parContainer.Controls[index])).Text 
    = "";
                                
    break;
                        }
                    }
                }
            }
    扫描上面二维码关注我
    如果你真心觉得文章写得不错,而且对你有所帮助,那就不妨帮忙“推荐"一下,您的“推荐”和”打赏“将是我最大的写作动力!
    本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接.
  • 相关阅读:
    POJ 3710 Christmas Game#经典图SG博弈
    POJ 2599 A funny game#树形SG(DFS实现)
    POJ 2425 A Chess Game#树形SG
    LeetCode Array Easy 122. Best Time to Buy and Sell Stock II
    LeetCode Array Easy121. Best Time to Buy and Sell Stock
    LeetCode Array Easy 119. Pascal's Triangle II
    LeetCode Array Easy 118. Pascal's Triangle
    LeetCode Array Easy 88. Merge Sorted Array
    ASP.NET MVC 学习笔记之 MVC + EF中的EO DTO ViewModel
    ASP.NET MVC 学习笔记之面向切面编程与过滤器
  • 原文地址:https://www.cnblogs.com/kerrycode/p/1664267.html
Copyright © 2020-2023  润新知