刷新C#中的表单

时间:2011-07-08 07:30:42

标签: c# winforms

我有一个包含多个文本框和combox的表单。当我点击save&新按钮,我想清除所有文本框并将selectedIndex设置为0组合框。 我不想这样使用 txtAddress =“”。 请帮帮我!

6 个答案:

答案 0 :(得分:1)

检查一下: http://www.hariscusto.com/programming/reset-all-controls-on-forms/

但是你不能总是遵循这一点,因为有时候你的表单会从数据库绑定,比如组合框绑定或使用更新后的材质绑定gridview。因此,您必须自己创建一个函数,从中将文本框设置为空并从数据库重新绑定绑定控件。

答案 1 :(得分:1)

你想这样做↓

       var lstTextbox = from p in controls
           where p is System.Windows.Forms.TextBox
           select p as System.Windows.Forms.TextBox;

        foreach (var txt in lstTextbox)
            txt.Clear();

答案 2 :(得分:1)

在按钮的onClientClick事件上,调用javascript函数ResetAll(),您可以在其中重置控件的值。最简单快捷。

答案 3 :(得分:0)

  1. 如果您对表单上的控件进行了数据处理,只需清除绑定到该控件的数据
  2. 如果没有,我很害怕你必须将空字符串分配给TextBox,就像你说的那样。也许你可以创建一个迭代控件。

    foreach(在此.Controls中控制ctrl){      if(ctrl是TextBox)          ((TextBox)ctrl).Text = string.Empty;      否则if(ctrl是SoemthigElse)          //做其他控制的其他事情 }

答案 4 :(得分:0)

您可以做的是将所有文本框添加到数组中,然后遍历数组并为每个文件设置.text属性为“”。您的组合框也需要相同。

遗憾的是,没有神奇的ClearAllMyTextboxesAndResetMyComboBoxes()方法。

答案 5 :(得分:0)

    private List<Binding> bindingCollection = new List<Binding>();

    private void ClearCurrentDatabindings()
    {
        if (bindingCollection.Count > 0)
        {
            foreach (Binding binding in bindingCollection)
            {
                binding.Control.DataBindings.Clear();
            }

            bindingCollection.Clear();
        }
    }

    private void BindTextBox(object target, string targetProperty, 
           Control controlToBind )
    {
        Binding binding = new Binding("Text", target, property);
        control.DataBindings.Add(binding);

        bindingCollection.Add(binding);
    }

在添加数据绑定时,请执行以下操作:

BindTextBox(customer, "Name" txt_CustomerName);

当您要清除所有内容时:

ClearCurrentDatabindings()

如果您不是这样的数据绑定(并且我看到理由不这样做),那么您必须手动执行,或者创建类似SetTextboxText(txt_Name, "some text")的方法,它们会将您的所有控件注册到一个集合中稍后清楚。