Avoir du mal à comprendre les classes et pourquoi je ne peux pas accéder à certains objets. Comment puis-je modifier le code pour pouvoir modifier les propriétés "map" (c'est-à-dire un tas d'étiquettes) dans toutes mes classes/événements?C# modifier les étiquettes créées en classe publique à partir du bouton de formulaire cliquer
La méthode Draw2d() crée un couple d'étiquettes sur le formulaire principal que je souhaite modifier sur différents événements (cliquez sur le bouton dans cet exemple). Est-ce que quelqu'un peut m'aider, ou simplement me faire signe dans la bonne direction?
Le code:
public partial class Form1: Formulaire
{
public void Draw2d()
{
const int spacing = 20;
Label[][] map = new Label[5][];
for (int x = 0; x < 5; x++)
{
map[x] = new Label[5];
for (int y = 0; y < 5; y++)
{
map[x][y] = new Label();
map[x][y].AutoSize = true;
map[x][y].Location = new System.Drawing.Point(x * spacing, y * spacing);
map[x][y].Name = "map" + x.ToString() + "," + y.ToString();
map[x][y].Size = new System.Drawing.Size(spacing, spacing);
map[x][y].TabIndex = 0;
map[x][y].Text = "0";
}
this.Controls.AddRange(map[x]);
}
}
public Form1()
{
InitializeComponent();
}
public void Form1_Load(object sender, EventArgs e)
{
Draw2d();
}
private void button1_Click(object sender, EventArgs e)
{
map[0][0].Text = "1"; // <-- Doesn't work
}
}
Merci!
Lorsque vous dites que cela ne fonctionne pas, que se passe-t-il? – Spence
Pourriez-vous créer un nouveau bouton qui lit la propriété map [0] [0] et le place dans une boîte de message. Vous pouvez voir si la propriété est écrasée ou si elle n'est pas affichée correctement? – Spence