Как очистить элемент управления TexBox (textbox.text) в пользовательском элементе управления - PullRequest
0 голосов
/ 27 декабря 2011

У меня есть пользовательский элемент управления, в котором есть текстовое поле, и я использую кнопку очистки в главной форме, чтобы очистить информацию из всего главного окна. Я хотел бы очистить текстовое поле в пользовательском элементе управления, как только будет нажата кнопка очистки. Я попытался сослаться на имя элемента управления в C #, а затем "." однако имя текстового поля не отображается. любая помощь будет оценена!

Я пытался разными способами, но ... нет результата:

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

Или я создаю один метод в usercontrol

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

Затем я вызываю метод clear () из моей текущей формы, как.

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

Но я не могу удалить текст, присутствующий в usercontrol

Спасибо заранее.

Ответы [ 3 ]

0 голосов
/ 27 декабря 2011
 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 голосов
/ 01 января 2012

Это улучшит производительность, так как пропуская циклы для поиска в текстовом поле.И дает гибкость, чтобы иметь несколько текстовых полей в вашем пользовательском элементе управления.

 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;}
                } 
            }
        }
0 голосов
/ 27 декабря 2011

Во внутреннем цикле измените эти строки

if (_obj.Controls[i] is TextBox)
{
   TextBox clearTextBox = _obj.Controls[i] as TextBox;
   clearTextBox.Text = String.Empty;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...