좋아요, abc
이라는 정수가 있고 abc를 2.
으로 설정하겠습니다. label2.visible = true;
은 어떻게 말합니까?객체 이름에 변수 사용
label_array[abc].visible = true;
좋아요, abc
이라는 정수가 있고 abc를 2.
으로 설정하겠습니다. label2.visible = true;
은 어떻게 말합니까?객체 이름에 변수 사용
label_array[abc].visible = true;
을 : 나는 3 ABC를 설정하면
은 내가 label3.visible = true;
당신의 솔루션은, 내가 원한 것이 아니고, 그것도 충분히 좋다. 그리고 짧게 ^^ – Foresp
당신이 할 수있는 수에 따라이 다음 라벨의 배열하는 것입니다 수행의 방법을 만들고 싶어, 의미
:이 같은 가시성 전환Label[] labels = new Label[] { label0, label1, label2, label3 };
을 다음과 같이 내게는 가장 쉬운 것으로 보인다 배열로 컨트롤을 넣어
void SetVisibility(int index, bool visible)
{
labels[index] = visible;
}
실제 질문에 대답하려면 아마도 리플렉션을 통해 가능할 수 있지만 실제로하고 싶은 것은 아닙니다. 유효한 유스 케이스를 생각할 수 없습니다.
다른 사람이 게시 한대로 배열을 사용하십시오.
나는 본다. 배열이 훨씬 쉽습니다.) (+ btw) – Foresp
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;
이 코드는 테스트되지 않은 내 머리 위로 떨어져이지만 작동합니다 :
감사합니다.이 배열도 좋을 것 같습니다. (+) – Foresp
두 가지 간단한 예
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;
}
그래도 좋지만 ... 좋지는 않은데 2 개 또는 3 개의 레이블에서 작동합니다. 하지만 더 많은 코드를 작성할 때 정말 많이 쓰고 싶지는 않습니다. – Foresp
예, 최선의 방법은 아니지만 프로그래밍 수준을 알지 못했기 때문에 아이디어를 도왔습니다.) ... 배열 예제로 이동하십시오 : D – user710502
미안하지만, 나는 이해하지 못합니다. 당신이하려는 것을 다시 말하거나 설명 할 수 있습니까? –
나는 모두에 포인트를 주었다. 당신은 모두 정확하다. – user710502