m0_51376955 2023-02-28 17:10 采纳率: 80%
浏览 55
已结题

遍历清空winform中的控件值

我的winform程序中需要对一个录入信息的窗体中Button编写清空窗体中Text、Combox、DateTimePicker的值,已备录入新信息。但是我在写遍历清空的时候始终无法清空内容。不知道问题在哪里。
Form中先有一个TableLayoutPanel容器,然后上面又布局了一个Panel1,这些控件就在该Panel1内。
然后按键在Panel1上的Panel2内。
现在这个遍历清空要怎么做呢?

img

  • 写回答

5条回答 默认 最新

  • Zyb0627 2023-03-03 10:25
    关注

    您可以使用递归函数来遍历您的Panel1,然后清空其中所有的TextBox、ComboBox、和DateTimePicker控件。以下是示例代码:

    private void ClearControls(Control control)
    {
        foreach (Control c in control.Controls)
        {
            if (c is TextBox)
            {
                ((TextBox)c).Text = string.Empty;
            }
            else if (c is ComboBox)
            {
                ((ComboBox)c).SelectedIndex = -1;
            }
            else if (c is DateTimePicker)
            {
                ((DateTimePicker)c).Value = DateTime.Now;
            }
            else if (c.Controls.Count > 0)
            {
                ClearControls(c);
            }
        }
    }
    
    private void btnClear_Click(object sender, EventArgs e)
    {
        ClearControls(panel1);
    }
    

    在上面的代码中,ClearControls函数使用foreach循环遍历panel1中的每个控件。如果控件是TextBox、ComboBox或DateTimePicker,它将使用相应的代码清空控件的值。如果控件还包含其他控件,则递归调用ClearControls函数以继续遍历下一级控件。在btnClear_Click事件处理程序中,我们将panel1作为参数传递给ClearControls函数以开始遍历和清空控件的值。

    请注意,此代码假定您只需要清空TextBox、ComboBox和DateTimePicker控件。如果您需要清空其他类型的控件,您可以将代码添加到if语句块中。

    回答不易,还请能够采纳!!!

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 3月5日
  • 已采纳回答 3月5日
  • 赞助了问题酬金15元 2月28日
  • 修改了问题 2月28日
  • 展开全部

悬赏问题

  • ¥15 关于#stm32#的问题:寻找一块开发版,作为智能化割草机的控制模块和树莓派主板相连,要求:最低可控制 3 个电机(两个驱动电机,1 个割草电机),其次可以与树莓派主板相连电机照片如下:
  • ¥15 Mac(标签-IDE|关键词-File) idea
  • ¥15 潜在扩散模型的Unet特征提取
  • ¥15 iscsi服务无法访问,如何解决?
  • ¥15 感应式传感器制作的感应式讯响器
  • ¥15 如何使用SC92F8003固件库解析私有协议数据?
  • ¥15 如何在音频中嵌入字符串(水印)信息进行传递
  • ¥30 plc怎么以设计说明书申请软著
  • ¥15 硬盘识别不了,需要初始化,可我的数据怎么办
  • ¥15 lvm2被mask了,怎么unmask都没用(标签-ubuntu|关键词-apt)