2013-05-09 3 views
1

나는 사용자 정의 컨트롤을 만든 다음, 거기에 2 개의 버튼이 포함 된 탭 페이지가있는 tabcontrol을 가지고 있으며, button1을 클릭하면 새 탭 페이지가 만들어집니다. 사용자 제어, 그것은 내가이 코드로 구현, 방금 만든 UserControl을-tabpage 안에있는 텍스트 상자에 텍스트를 넣어해야 내가 단추 2를 클릭하면 지금사용자 정의 컨트롤을 사용하여 만든 탭 페이지 내에서 컨트롤을 찾습니다.

tab = new TabPage(); 
UserControl1 uc = new UserControl1();   
tab.Controls.Add(uc); 
tab.Name = "0"; 
tab.Text = tab.Name; 
tabControl1.TabPages.Add(tab); 

을 통해 컨트롤에 추가됩니다

TextBox sel = (TextBox)tabControl1.TabPages["0"].Controls["textBox1"]; 
sel.Text = "ssss"; 

하지만 런타임 오류를 반환합니다. 차 상기 제어, 그래서 난

TextBox sel = (TextBox)tabControl1.TabPages["0"].Controls[0]; 
sel.Text = "ssss"; 

을 시도했지만 여전히 캐스트 UserControl을이 텍스트 상자에 적용 할 수 없다는 런타임 오류를 반환합니다. 그게 무슨 뜻인지 모르겠다 .. pls이 날 도와 줘. 나는 또한 컨트롤 [1] 퍼팅 시도했지만 OutofBounds 예외 런타임 오류를 반환했습니다. 내가 어떻게 해야할지, 또는 어떻게 컨트롤을 tabpage에서 usercontrol 내부에서 찾을 수 있습니까? pls hellp

답변

1

TextBox가 UserControl에 이미 존재하는 경우 약간의 불분명이 있으므로 가정합니다.

UserControl1 uc1 = tabControl1.TabPages["0"].Controls[0] as UserControl1; 
if (uc1 != null) { 
    TextBox sel = uc1.Controls["textBox1"] as TextBox; 
    if (sel != null) { 
    sel.Text = "ssss"; 
    } 
} 
0
UserControl uc = NameTabPages.Controls[0] as UserControl; // it's work 
:이 경우, 먼저 해당 UserControl을 참조 할 필요
관련 문제