在winform中用鼠标绘制多边形,调用了已经写好的绘制多边形的函数,但现在我要在绘制过程中按ESC键取消,有取消正在绘制的多边形的函数,
if (e.KeyCode == Keys.Escape)
            {
               该函数();
            }
这样写为什么没有效果?应该怎么改

解决方案 »

  1.   

    比如mousedown事件中有一个标记 isdown = true,绘图中判断这个isdiwn,如果为true就绘制,按esc时 isdown=false,这样就不会画了
      

  2.   


    if (e.KeyCode == Keys.Escape)
                {
                   isdown=false              }
    改成mouseMove中判断  isdown=false   就停止画了
      

  3.   

    好像不太行呀,我再说得详细一点
    在mousedown事件里绘制,左键是绘制,调用相应函数,右键是完成,也有函数
    然后在keydown事件里调用取消绘制的函数
    if (e.KeyCode == Keys.Escape)
                {
                    取消正在进行的多边形函数();
                }
    这样在画多边形的期间按ESC没有任何效果,断点调试了,那个keydown事件根本没有执行
      

  4.   

    调用了已经写好的函数,就是按照上面几位说的方法,在画多边形的过程中按ESC也没任何效果,并且断点调试时,那个函数根本就没执行