如何从按钮启动Picturebox事件

时间:2011-08-22 07:08:51

标签: c# winforms events picturebox

我有一个名为“Paint”的按钮,它应该允许在点击后在我的图片框上绘制矩形,即它就像一个允许绘图(开/关)的开关。

我使用鼠标位置绘制了矩形,如下所述:How Can I Capture Mouse Coordinate on PictureBox?。但是每当我移动到PictureBox上时都会绘制矩形。

如何实现仅在“Paint”为“on”时必须实现绘图的功能 我尝试从Picturebox的事件开始实现:Paint,MouseDown,MoseMove,Mouse Up ......

2 个答案:

答案 0 :(得分:2)

  1. 在你的应用程序中设置一个标志(bool),告诉你你是否画画的模式(可以从你所说的按钮激活)。
  2. 鼠标中的
  3. 从鼠标事件处理程序中获取起点(e.x,e.y)。 现在你有了矩形的左上角。

    3.当鼠标移动时,取e.x和e.y,这是右下角并绘制矩形。将绘图代码放在鼠标移动中,使其像“绘图”程序一样绘制(如果绘制标记为真,则执行此操作)。

  4. 鼠标向上
  5. 重置绘图标志

    5.在图片框的绘画事件中绘制你拥有的所有形状,这样如果你最小化你的应用程序窗口然后最大化它你会发现你绘制的形状可以通过使矩形是一个类来制作它的一些实例(用于循环你的形状并绘制它)。

答案 1 :(得分:0)

最简单的解决方案是添加一个布尔bDraw变量,该变量仅在按钮点击时变为TRUE。如果此变量为FALSE,则所有其他绘图方法都不会执行任何操作。

其他解决方案可能只是订阅 按钮单击事件处理程序内的鼠标事件因此,如果未单击按钮,则不会发生任何事件。