2016-02-11 2 views
-1

Я добавил некоторые динамически создаваемые элементы TextBox внутри панели следующим образомДинамически создаваемые TextBoxes внутри панели недоступен по имени

  for(int index=0; index<textBoxArray.Length; index++) 
      { 
       panel_textbox.Controls.Add(textBoxArray[index]); 
      } 

Где textBoxArray держит объекты TextBox с такими именами, как txt_1, txt_2 Теперь, когда я m пытается получить доступ к текстовому полем, используя следующий код

panel_textbox.Controls.Find("txt_1")[0].Visible = true; 

Он не может найти TextBox. Я использую C#, и это приложение для Windows.

+0

И у вас есть если по крайней мере один из текстовых полей имеет имя «txt_1»? Ака вы присвоили свойству свойство «txt_1»? – Ralf

+0

Да, я так и назвал их правильно. –

ответ

0

Попробуйте поискать всех детей.

panel_textbox.Controls.Find("txt_1",true)[0].Visible = true; 

или

this.Controls.Find("txt_1",true)[0].Visible = true; 
+0

Да пробовал со всеми детьми, но это не сработало. Хотя я вижу текстовые поля внутри панели MessageBox.Show (panel_textbox.Controls.Count), показывая 0 –

+0

@AngshuGuha: покажите, где вы назначаете имена для текстовых полей. – CharithJ

0

Предполагая, что вы сделали следующее, я не нашел никаких проблем с кодом .... 10 Textboxes видны в моей панели в WinForm приложения

TextBox[] array = new TextBox[10];int count=0; 
     for (int i = 0; i <= 45;i+=5) 
     { 
      TextBox textBox = new TextBox() 
      { 

       Name = "txt_" + count, 
       Margin = new System.Windows.Forms.Padding(10+i,15+i,0,0), 

       Text="Hello "+count, 
       Height = 10, 
       Width = 100 
      }; 
      array[count++] = textBox; 
     } 
     for (int i = 0; i < array.Length;i++) 
     { 
      panel1.Controls.Add(array[i]); 
     } 
      (panel1.Controls.Find("txt_0", false)[0]).Visible = false; 
Смежные вопросы