Problem with some automatic update that happens on mouse click

I have been working on a Windows application lately. It is created from several classes that basically draw the image together. After that I made two random click buttons by changing several colors of the drawn objects.

Everything works fine, including the buttons, but my problem is that every time I hover over the buttons with my mouse, the form seems to update (it blinks once). Naturally, I want the form to update on click of the button, not on hover.

Hope I can explain my problem clearly.

I'm not sure which piece of code to give you. But here is my main application form:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Kruispunt
{
    public partial class Kruispunt : Form
    {
        private Oversteekplaats autoNZ, autoOW, fietsNZ, fietsOW, zebraNZ, zebraOW;

        private Oversteekplaats[] oversteekplaatsen = new Oversteekplaats[6];

        private CPU cpu = new CPU();

        private Button NZknop = new Button();
        private Button OWknop = new Button();

        private CheckBox storingCheckBox = new CheckBox();

        public Kruispunt()
        {
            InitializeComponent();

            Graphics g = Graphics.FromHwnd(this.Handle);

            autoNZ = new Oversteekplaats(300, 300, 200, 200, g, Status.Aan, Color.Green, Orientatie.NZ, Soort.Auto);
            autoOW = new Oversteekplaats(300, 300, 200, 200, g, Status.Aan, Color.Red, Orientatie.OW, Soort.Auto);

            fietsNZ = new Oversteekplaats(300, 120, 500, 200, g, Status.Aan, Color.Green, Orientatie.NZ, Soort.Fiets);
            fietsOW = new Oversteekplaats(120, 300, 200, 500, g, Status.Aan, Color.Red, Orientatie.OW, Soort.Fiets);

            zebraNZ = new Oversteekplaats(300, 120, 620, 200, g, Status.Aan, Color.Green, Orientatie.NZ, Soort.Voetganger);
            zebraOW = new Oversteekplaats(120, 300, 200, 620, g, Status.Aan, Color.Red, Orientatie.OW, Soort.Voetganger);

            oversteekplaatsen[0] = autoNZ;
            oversteekplaatsen[1] = autoOW;
            oversteekplaatsen[2] = fietsNZ;
            oversteekplaatsen[3] = fietsOW;
            oversteekplaatsen[4] = zebraNZ;
            oversteekplaatsen[5] = zebraOW;

            storingCheckBox.Text = "Kruispunt in storing";
            storingCheckBox.Location = new Point(20, 15);
            storingCheckBox.Size = new System.Drawing.Size(150, 25);
            this.Controls.Add(storingCheckBox);

            NZknop.Text = "Noord-Zuid Groen";
            NZknop.Location = new Point(20, 40);
            NZknop.Size = new System.Drawing.Size(110, 25);
            NZknop.Click += new EventHandler(NZknop_Click);
            this.Controls.Add(NZknop);

            OWknop.Text = "Oost-West Groen";
            OWknop.Location = new Point(20, 70);
            OWknop.Size = new System.Drawing.Size(110, 25);
            OWknop.Click += new EventHandler(OWknop_Click);
            this.Controls.Add(OWknop);
        }

        void NZknop_Click(object sender, EventArgs e)
        {
            cpu.groenNoordZuid(ref oversteekplaatsen);

            this.Refresh();
        }

        void OWknop_Click(object sender, EventArgs e)
        {
            cpu.groenOostWest(ref oversteekplaatsen);

            this.Refresh();
        }

        private void Kruispunt_Paint(object sender, PaintEventArgs e)
        {
            autoNZ = oversteekplaatsen[0];
            autoOW = oversteekplaatsen[1];
            fietsNZ = oversteekplaatsen[2];
            fietsOW = oversteekplaatsen[3];
            zebraNZ = oversteekplaatsen[4];
            zebraOW = oversteekplaatsen[5];

            autoNZ.teken();
            autoOW.teken();

            fietsNZ.teken();
            fietsOW.teken();

            zebraNZ.teken();
            zebraOW.teken();
        }

        private void Kruispunt_Load(object sender, EventArgs e)
        {

        }
    }
}

      

+2


a source to share





All Articles