比如说我现在在画布上画一个 矩形的对象;如何才能让它相应双击事件

解决方案 »

  1.   


                //1.画布的双击事件
                //2.双击事件中 e.x,e.y是否在矩形中,如果在执行
      

  2.   

    我在自定义的画布上画一个 矩形对象
    这是一个矢量图;
    可以捕捉到 矩形对象中心点 的 (e.x e.y)
    单击时是选择 矩形对象,可以进行移动现在我想,当我双击 矩形对象时,让它响应双击事件
      

  3.   

    奇怪了 贴出来的图片怎么显示不出来了
    http://hi.csdn.net/space-4513808-do-album-picid-678402-goto-down.html
    上面是我空间的相册的图片地址
      

  4.   

    http://blog.csdn.net/dunao/archive/2009/02/05/3865053.aspx
      

  5.   

    先说窗口,你在什么地方 画图,我暂且认为它是个panel吧。panel有双击事件。
    在panel的双击事件中,判断一下,当前的位置,如果在矩形中,触发你的双击事件。
    这个控件设计中经常用到。还有一个麻烦的可能是Zorder,如果有两个矩形交叉,点在了交叉区域怎么办?
    给你的控件加上zorder, who 在上边,就触发who的事件。
    无非是事件中写上(伪码):
    if(ptInRectangleA()){
       Fire_Event_RectangleA();
    }if(ptInCircle()){
       Fire_Event_Circle();
    }你画上的每个“控件”都有区域(不限于矩形)
    你画上的每个“控件”都应该是有标识的,把标识传给你的事件。这样可以处理N多事件。
      

  6.   


    感谢 云中漫步 提供思路,以下是我的做法我先选中 某个对象;然后判断,所选中的对象是否是自己想要的
    最后加个计数鼠标点击次数
    判断鼠标是否双击对象
    这样就可以触发事件下面是我的代码:private int imageCount = 0; //统计鼠标点击 Image对象的次数
    public override void OnMouseDown(DrawArea drawArea, MouseEventArgs e)
    {
       …………
       if (o != null)
       {                  //判断是否为图片对象,如果是,双击修改
                        if (o is DrawImage)
                        {
                            imageCount++;
                            if ((e.Button == MouseButtons.Left)&&(imageCount==2))
                            {
                                ……(你自己需要触发的事件)
                            }                    }
       }
       ……
    }
     很感谢大家;圆满结贴!