C# Label aanpassen

Status
Niet open voor verdere reacties.

hypercube

Gebruiker
Lid geworden
9 dec 2007
Berichten
85
Hallo allemaal,

Ik ben C# aan het leren en stuit op een vervelend probleem. Ik kan een label niet veranderen, en wanneer ik er een textbox van maak wil hij maar één keer updaten (na een muisklik). In onderstaande code gebruik ik een textbox en update hij de text dus maar 1 keer. Hij moet hem elke keer dat er wordt geklikt updaten.

Code:
using System.Windows.Forms;
using System.Drawing;
using System;

class ReversiForm : Form
{
    private TextBox label_zet;

    public int [,] playground = new int[6,6];

    int x = 0;
    int y = 0;
    int turn = 1;

    public ReversiForm()
    {
        this.Text = "Reversi";
        this.BackColor = Color.White;
        this.Size = new Size(600, 600);
        this.Paint += InitializeComponent;
        this.MouseClick += this.mouseClick;
    }

    private void InitializeComponent(object o, PaintEventArgs pea)
    {
        for (int i = 0; i < 7; i++)
        {
            pea.Graphics.DrawLine(Pens.Black, 20 + 50 * i, 200, 20 + 50 * i, 500);
            pea.Graphics.DrawLine(Pens.Black, 20, 200 + 50 * i, 320, 200 + 50 * i);
        }

        this.label_zet = new TextBox();
        this.label_zet.Location = new Point(20, 20);
        this.label_zet.Name = "label";
        this.label_zet.Size = new Size(120, 20);
        this.label_zet.Text = "Player " + turn + " can go now";
        this.Controls.Add(this.label_zet);

        // Stones
        pea.Graphics.FillEllipse(Brushes.Red, 100, 80, 50, 50);
        pea.Graphics.FillEllipse(Brushes.Blue, 100, 140, 50, 50);

        // Draw stones
        for (int i = 0; i < 6; i++)
        {
            for (int t = 0; t < 6; t++)
            {
                if (playground[i, t] == 1)
                {
                    pea.Graphics.FillEllipse(Brushes.Red, 20 + 50 * i, 200 + 50 * t, 50, 50);
                }
                if (playground[i, t] == 2)
                {
                    pea.Graphics.FillEllipse(Brushes.Blue, 20 + 50 * i, 200 + 50 * t, 50, 50);
                }
            }
        }
    }

    public void mouseClick(object o, MouseEventArgs mea)
    {

        x = mea.X;
        y = mea.Y;
        if (x > 20 && x < 320 && y > 200 && y < 500)
        {
            for (int i = 0; i < 6; i++)
            {
                if (x > 20 + 50 * i && x < 20 + 50 * (i + 1))
                {
                    for (int t = 0; t < 6; t++)
                    {
                        if (y > 200 + 50 * t && y < 200 + 50 * (t + 1))
                        {
                            playground[i, t] = turn;
                            if (turn == 1) turn = 2;
                            else turn = 1;
                            this.label_zet.Text = "Player " + turn + " can go now";
                            Invalidate();
                        }
                    }
                }
            }
        }
    }
}

class Reversi
{
    static void Main()
    {
        ReversiForm scherm;
        scherm = new ReversiForm();
        Application.Run(scherm);
    }
}

En nu wil ik eigenlijk een label gebruiken, maar die wil hij helemaal niet updaten! Ik heb ook gebprobeerd een programma aan te maken met enkel een label, en deze up te daten op het MouseClick event, maar dat wil maar niet werken..

Alvast bedankt :)

edit: Oh en het gaat om label_zet uiteraard.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan