在鼠标hover时button上出现一些自动刷新的问题

最近我一直在研究Windows应用程序。 它是从几个基本上共同绘制图像的课程中build立起来的。 之后,我做了2个button,点击事件,改变了绘制对象的几种颜色。

一切工作正常,包括button,但我的问题是,每次我用鼠标hover在button上的forms似乎刷新(闪烁一次)。 当然,我只想要单击button后,而不是在hover后刷新窗体。

我希望我明确解释我的问题。

我不确定要给你什么代码。 但这是我的主要申请表格:

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) { } } }