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
No one has answered this question yet
Check out similar questions: