2011-05-06 4 views
3

좋아요, abc이라는 정수가 있고 abc를 2.으로 설정하겠습니다. label2.visible = true;은 어떻게 말합니까?객체 이름에 변수 사용

label_array[abc].visible = true; 
+0

미안하지만, 나는 이해하지 못합니다. 당신이하려는 것을 다시 말하거나 설명 할 수 있습니까? –

+0

나는 모두에 포인트를 주었다. 당신은 모두 정확하다. – user710502

답변

6

을 : 나는 3 ABC를 설정하면

은 내가 label3.visible = true;

+0

당신의 솔루션은, 내가 원한 것이 아니고, 그것도 충분히 좋다. 그리고 짧게 ^^ – Foresp

2

당신이 할 수있는 수에 따라이 다음 라벨의 배열하는 것입니다 수행의 방법을 만들고 싶어, 의미

:이 같은 가시성 전환

Label[] labels = new Label[] { label0, label1, label2, label3 }; 

을 다음과 같이 내게는 가장 쉬운 것으로 보인다 배열로 컨트롤을 넣어

void SetVisibility(int index, bool visible) 
{ 
    labels[index] = visible; 
} 
2

실제 질문에 대답하려면 아마도 리플렉션을 통해 가능할 수 있지만 실제로하고 싶은 것은 아닙니다. 유효한 유스 케이스를 생각할 수 없습니다.

다른 사람이 게시 한대로 배열을 사용하십시오.

+0

나는 본다. 배열이 훨씬 쉽습니다.) (+ btw) – Foresp

2

C#이 구문의 유형을 지원하지 않습니다.

레이블을 일종의 구조에 넣고 레이블을 조작하는 데 사용합니다. 다음은 몇 가지 예 :

List<Label> labels = new List<Label>(); 
int i = /* some valid index (0 based) */ 
labels[i].visible = true; 

Dictionary<string, Label> labelDict = new Dictionary<string, Label>(); 
labelDict.add("label1", label1); 
labelDict["label1"].visible = true; 

은 또한 당신이 자식 컨트롤의 부모 폼의 목록에서 레이블을 얻을 가시성 그런 식으로 설정할 수 있습니다.

var theLabel = (Label) this.Controls.Find("label" + abc.toString()); 
theLabel.Visible = true; 

이 코드는 테스트되지 않은 내 머리 위로 떨어져이지만 작동합니다 :

+0

감사합니다.이 배열도 좋을 것 같습니다. (+) – Foresp

0

두 가지 간단한 예

if(abc == 2) 
    { 
      label2.visible = true; 
      label3.visible = false; 
     } 
    else if(abc ==3) 
     { 
     label3.visible = true; 
     label2.visiable = false;  
     } 

or use a switch statement 

    switch(abc) 
    { 
     case 2: 
      label2.visible = true; 
      break; 
     case 3: 
      label3.visible = true; 
      break; 

    } 
+0

그래도 좋지만 ... 좋지는 않은데 2 개 또는 3 개의 레이블에서 작동합니다. 하지만 더 많은 코드를 작성할 때 정말 많이 쓰고 싶지는 않습니다. – Foresp

+0

예, 최선의 방법은 아니지만 프로그래밍 수준을 알지 못했기 때문에 아이디어를 도왔습니다.) ... 배열 예제로 이동하십시오 : D – user710502

3

은 당신이 뭔가를 할 수 있습니다.

+1

감사합니다. 이것은 좋은 (+) – Foresp

+0

당신을 환영합니다! 희망이 도움이! – SquidScareMe

6

Control.FindControl 메서드를 사용하려고합니다.

+0

내가 원한 것처럼 보이지만 배열을 사용하는 것이 더 짧고 쉽고 단순 해 보인다. – Foresp

관련 문제