2016-09-12 4 views
-2

양식에는 패널 내에 여러 버튼이 모두 있습니다. 내가하려고하는 것은 미리 정해진 2 개의 변수를 사용하여 64 개의 버튼 중 하나를 활성화하는 것입니다. 활성화 된 버튼은 이전에 어떤 버튼이 선택되었는지에 따라 다릅니다. 각 버튼의 이름은 "버튼"+ # 1-9 사이의 # + A-H 사이의 문자입니다. ASCII 값을 사용하여 문자를 결정합니다.C#에서 두 개의 변수를 사용하여 버튼을 호출하는 방법은 무엇입니까?

예 : 등 button3A, 버튼 7H,

나는 충돌을 가지고 나에게 null 값을 제공합니다 코드 :

x = Convert.ToInt32(listBox1.SelectedItem.ToString().Substring(0, 1)); x = x + 1; 
y = (int)listBox1.SelectedItem.ToString()[1]; y = y + 2; 
DB4.Items.Add("" + x + (char)y); 
if ((x == 1 || x == 2 || x == 3 || x == 4 || x == 5 || x == 5 || x == 6 || x == 7 || x == 8 || x == 9) && (y == 65 || y == 66 || y == 67 || y == 68 || y == 69 || y == 70 || y == 71 || y == 72)) 
    (this.Controls["button" + x + (char)y] as Button).Enabled = true; 
+0

전체 예외 메시지는 어디에서 발생합니까? 또한 도움이 될 것입니다. – Jacobr365

+2

당신은 모든 버튼이'panel'에 위치한다고 말했지만 ** Form의 controls **에서'button'을 검색하고 있습니다. ** 패널의 컨트롤 **을 검색해야합니다. – Berkay

+0

listBox1.selecteditem.value를 사용하여 listBox1.SelectedItem.ToString()을 대체 해보십시오. – Reddy

답변

0

(영업 대신에 배치하는 솔루션).

문제는 panel1.Controls 대신 this.Control을 사용했기 때문입니다. 작은 세부 사항을 알기 위해 Berklay 소품을 사용하십시오!

관련 문제