2009-06-02 13 views
0

In der Theorie ist das Ganze, was ich versuche zu erreichen, aus objektorientierter Sichtweise dumm, aber ich muss es tun.Zugriff auf Formularelemente mit einer Ganzzahl?

Es ist ein Online-Spiel, an dem ich arbeite. Der Kunde hat ein Inventar mit Gegenständen, weißt du - virtuelle Gegenstände. Der Server sendet die Artikel mit der entsprechenden Position im Inventar. Diese

ist, wie mein Inventar wie folgt aussieht:

I 62 Platten haben (jede Platte stellt den Raum im Inventar).

Mein Problem: Wenn ich die virtuellen Objekte und die entsprechenden Slots, in die sie eingefügt werden sollen, sortiere, muss ich sie auf dem Formular zeichnen.

In der Theorie, wenn ich Element "C: \ a.bmp" in Position 4, wie setze ich panel4.image gleich dem Bild sein?

Dies ist, was ich versuche zu tun:

var data = new byte[6]; 
... //we receive a packet,data is our buffer 
var position = data[4]; 
Form1.panel + position + .backgroundImage = "bla bla.jpg"; 

Wie dass die Platten wie nenne?

Antwort

2

Verwandeln Sie sie in ein Array statt 62 individuelle Variablen. Dann können Sie verwenden:

Form1.panels[position].BackgroundImage = "..."; 

Es gibt keine Designer Unterstützung für diese (die ich bin mir dessen bewusst), obwohl - haben Sie schaffen alle diese Platten in der Designer? Wenn Sie es stattdessen programmatisch tun können, werden Sie Ihr Leben viel einfacher machen (IMO).

+0

Sie haben mir das immer gesagt und ich vergesse immer diese kleine Lösung. Danke Jon! –

+0

Sollte ich ein anderes Array erstellen und manuell hinzufügen oder sollte ich die Designer.cs bearbeiten? Ich habe das nie zuvor versucht. –

+0

oh, ich bin wieder zu langsam. – Robert

Verwandte Themen