zoukankan      html  css  js  c++  java
  • 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;
                        }
                    }
                }
            }
    扫描上面二维码关注我
    如果你真心觉得文章写得不错,而且对你有所帮助,那就不妨帮忙“推荐"一下,您的“推荐”和”打赏“将是我最大的写作动力!
    本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接.
  • 相关阅读:
    Kubernetes 集成研发笔记
    Rust 1.44.0 发布
    Rust 1.43.0 发布
    PAT 甲级 1108 Finding Average (20分)
    PAT 甲级 1107 Social Clusters (30分)(并查集)
    PAT 甲级 1106 Lowest Price in Supply Chain (25分) (bfs)
    PAT 甲级 1105 Spiral Matrix (25分)(螺旋矩阵,简单模拟)
    PAT 甲级 1104 Sum of Number Segments (20分)(有坑,int *int 可能会溢出)
    java 多线程 26 : 线程池
    OpenCV_Python —— (4)形态学操作
  • 原文地址:https://www.cnblogs.com/kerrycode/p/1664267.html
Copyright © 2011-2022 走看看