UI에 Control들을 배치 하다 보면, 동일한 이름에 Index만 변경되는 Label, TextBox, Button등을 가져다 놓을 수 있다.
이럴 경우 하나 하나 이름을 변경해 주는 것이 엄청 힘든 작업 중에 하나이다.
Control들을 배치 할 때, 이름 순서대로 놓은 다음, 아래와 같은 형태의 코드를 사용하면 간단하게 Control들의 속성을 변경할 수 있다.
아래 예제는 Button을 찾아서 Enable/Disable을 변경하고, Text를 변경하는 예제이다.
public void Set_Enable__bt_name(String sbt_name, Boolean flag, String sbt_text)
{
Int32 idx0;
Int32 idx1;
Boolean cont = true;
for(idx0 = 0; idx0 < this.Controls.Count; idx0++)
{
// Panel안에 Button들을 찾는다.
for(idx1 = 0; idx1 < this.Controls[idx0].Controls.Count; idx1++)
{
if(this.Controls[idx0].Controls[idx1].Name.Equals(sBtnName))
{
// 찾은Button의 Enabled를 설정
this.Controls[idx0].Controls[idx1].Enabled = flag;
this.Controls[idx0].Controls[idx1].Text = sbt_text
cont = false;
return;
}
}
if(false == cont)
{
return;
}
}
}
하나의 Form안에서 나열된 Control들을 찾을 경우는 아래와 같이 단일 For-Loop를 사용하면 된다.
public void Set_Enable__bt_name(String sbt_name, Boolean flag, String sbt_text)
{
Int32 idx0;
Boolean cont = true;
for(idx0 = 0; idx0 < this.Controls.Count; idx0++)
{
if(this.Controls[idx0].Name.Equals(sBtnName))
{
// 찾은Button의 Enabled를 설정
this.Controls[idx0].Enabled = flag;
this.Controls[idx0].Text = sbt_text
cont = false;
return;
}
if(false == cont)
{
return;
}
}
}
'프로그래밍 언어 > C#' 카테고리의 다른 글
단어로 문자열을 자르기 할 경우 (0) | 2019.08.16 |
---|---|
함수명을 String으로 호출하기 (0) | 2019.08.12 |
TextBox 컨트롤 배열 생성 및 Event 구문 등록 방법 (0) | 2019.07.23 |
ListBox, ListView, TextBox에서 항상 포커스를 제일 아래로 자동 옮기기 (0) | 2019.07.19 |
문자열을 숫자로 변환하는 방법 (0) | 2015.06.27 |