2011-12-27 92 views
0

我有一個用戶控件,裏面有一個文本框,並且我在主窗體上使用了一個清除按鈕來清除整個主窗口中的信息。我想清除用戶控件中的文本框,一旦清除按鈕被點擊。我曾嘗試在c#中引用控件的名稱,然後是「。」但是文本框的名稱不顯示。任何幫助,將不勝感激!我如何清除用戶控件中的TexBox(textbox.text)控件

我在很多方面都試過了,But..no結果:

private void button1_Click(object sender, EventArgs e) 

    { 
     for(int k = 0; k< this.Controls.Count;k++) 
     { 
      if(this.Controls[k] is MyUserControl) 
      { 
       MyUserControl _obj = this.Controls[k] as MyUserControl; 
       for (int i = 0; i < _obj.Controls.Count; i++) 
       { 
        if (_obj.Controls[i].GetType().ToString() == "TextBox") 
         (_obj.Controls[i] as TextBox).Clear(); 
       } 
      }  
     } 

還是我在創建一個用戶控件的方法

 public void clear() 
     { 
     txtname.Text = String.empty; 
     } 

然後我從我目前的調用clear()方法形式像。

  usercontrol uc = new usercontrol(); 
     uc.clear(); 

但我無法事先予以

由於目前在用戶控件中的文本。

回答

0

在內環改變這些線路

if (_obj.Controls[i] is TextBox) 
{ 
    TextBox clearTextBox = _obj.Controls[i] as TextBox; 
    clearTextBox.Text = String.Empty; 
} 
0
private void button1_Click(object sender, EventArgs e) 
      { 
      for (int k = 0; k < this.Controls.Count; k++) 
       { 
       if (this.Controls[k] is MyUserControl) 
        { 
        MyUserControl _obj = this.Controls[k] as MyUserControl; 
        for (int i = 0; i < _obj.Controls.Count; i++) 
         { 
         if (_obj.Controls[i] is TextBox) 
          { 
          ((TextBox)_obj.Controls[i]).Clear(); 
          } 
         } 
        } 
       } 
      } 
0

這將改善性能跳過循環來搜索文本框。並且可以靈活地在用戶控制中使用多個文本框。

private void button1_Click(object sender, EventArgs e) 
     { 
     for (int k = 0; k < this.Controls.Count; k++) 
      { 
      if (this.Controls[k] is MyUserControl) 
       { 
       MyUserControl _obj = this.Controls[k] as MyUserControl; 
       if (_obj != null) 
        {((TextBox)_obj.FindControl("yourTextBoxID")).Text = string.Empty;} 
       } 
      } 
     } 
相關問題