2016-09-12 4 views
-2

Auf dem Formular befinden sich mehrere Schaltflächen innerhalb eines Panels. Was ich versuche zu tun ist, aktivieren Sie eine der 64 Tasten mit 2 vorgegebenen Variablen. Die Schaltfläche, die ich aktivieren möchte, hängt davon ab, welche Schaltfläche zuvor ausgewählt wurde. Jede Taste hat den Namen: "button" + # zwischen 1-9 + Buchstaben zwischen A-H. Ich bestimme den Buchstaben mit ASCII-Werten.Wie ruft man eine Schaltfläche mit zwei Variablen in C#?

Beispiel: button3A, Taste 7H usw.

Der Code, den ich Abstürze haben und gibt mir einen Nullwert:

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

Die vollständige Ausnahmebedingungsnachricht sowie wo es auftritt, wäre hilfreich. – Jacobr365

+2

Sie haben gesagt, dass alle Schaltflächen auf 'panel' platziert sind, Sie aber' button' auf ** Forms controls ** suchen. Sie müssen die ** Bedienelemente ** durchsuchen. – Berkay

+0

try ersetzen listBox1.SelectedItem.ToString() mit listBox1.selecteitem.value – Reddy

Antwort

0

(Posted Lösung im Namen des OP).

Das Problem war, dass ich dies verwendet. Steuerelemente anstelle von Panel1.Controls. Requisiten auf Berklay, weil sie so ein kleines Detail bemerkt haben!

Verwandte Themen