2015-01-22 4 views
0

단추의 텍스트를 프로그래밍 방식으로 변경하려고합니다. 이름 형식이 숫자 인 btnXXX 인 숫자가 있습니다. 여기서 XXX은 숫자입니다.프로그래밍 방식으로 단추 텍스트를 변경하는 방법?

databaseFunc.SelectThings("uspSelectCategoryNames", noParam, noValue); 
dataTable = databaseFunc.dataTable; 
for (int x = 0; x < dataTable.Rows.Count; x++) 
{ 
    btn[x].Text = dataTable.Row[0][0].ToString();   
} 

어떻게이 과제에 이름 btnXXX있는 버튼을받을 수 있나요 : btn[x]?

+2

을하지만 버튼에 대한 코드를 알의 다음 Find 호출에서 true 그것은 아이가 너무 제어 검색 할 수 있습니다? 당신이 그것을 프로그램하지 않았습니까? –

+1

결과는 무엇입니까? 오류 메시지가 있습니까? 무슨 일이 일어나고 정확히 무엇이 문제입니까? 벼룩은'btn'의 정의를 보여줍니다. – Codor

+2

버튼의 이름 또는 텍스트를 변경 하시겠습니까? 그리고 당신이 N 개의 카테고리를 읽고 DB를 읽고, 읽는 모든 카테고리에 대해 버튼을 만들고 싶다고 정정하는 것을 이해합니까? – lsteinme

답변

4

버튼이 포함 된 배열을 만들 수 있습니다. 색인을 사용하여 쉽게 검색 할 수 있습니다.

Button[] buttons = new Button[] { btn0, btn1, btn2 }; 

buttons[0].Text = "abc"; 

이렇게하면 첫 번째 버튼의 Text이 설정됩니다.

또 다른 옵션은 Find을 사용하여 특정 이름으로 컨트롤을 찾는 것입니다.

Control[] matches = this.Controls.Find("btn0", true); 

Button b = matches.Length > 0 ? matches[0] as Button : null; 

if (b != null) 
{ } 
+0

문자열로 액세스하려면 사전 을 사용하십시오! – TaW

+0

@TaW : 나는 Find의 부가 가치를 보지 못했다. –

+0

@TaW : 실수 할 가능성과 비교할 때 유용성에 의문을 제기합니다. 작업이 많으면 성능이 향상 될 수 있습니다. 'int x'가 실제 기반이므로 첫 번째 방법을 선호합니다. –

관련 문제