2011-07-08 66 views
2

我有一个带有多个文本框和combox的窗体。当我单击保存&新按钮时,我想要清除所有文本框并将selectedIndex设置为0组合框。 我不想像这样使用 txtAddress =“”。 请帮帮我!在C#中刷新窗体#

回答

1

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

但你不能总是遵循这一点,因为有时你的形式已经从数据库中像组合框结合或gridview的用更新的材料有约束力。所以你必须自己创建一个函数,从你设置文本框的空白处重新绑定数据库的绑定控件。

0
  1. ,如果您有窗体上的控件databinging,只是清除绑定到数据控制
  2. 如果不是,我affraid你得空字符串赋值给文本框,就像你说的。也许你可以创建一个迭代控件。 (Ctrl + TextBox) ((TextBox)ctrl).Text = string.Empty;如果(ctrl是文本框) ((TextBox) 否则,如果(Ctrl为SoemthigElse) //做somethign否则其他控制01​​}

0

你可以做的就是通过阵列添加所有的文本框在一个数组,然后循环,并设置.text财产对每个“”。你也需要对你的组合框也一样。

很遗憾没有魔法ClearAllMyTextboxesAndResetMyComboBoxes()方法。

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(); 
1

在按钮的OnClientClick事件,调用javascript函数ResetAll(),您可以重新设置控件的值。最简单和快速。

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"),它将把你的所有控件注册到一个你稍后可以清除的集合中。