比如listBox
在listBox的MouseMove事件里,如果把鼠标移到listBox的右下角位置,水平向上e.X的值比listBox.Width好几个,并且listBox越大这个差值远大,这是为什么呢?有没有什么办法达到我的目的?
感激涕零!

解决方案 »

  1.   

    到MSDN看看PointToScreen和PointToClient
      

  2.   

    “水平向上e.X的值比listBox.Width好几个”这句话什么意思?
      

  3.   

    TO楼上:意思就是——
    比如listBox.width=100,如果鼠标移到listBox的右边,在
    listBox_mouseMove(Sender e)事件中得到的
    e.X不是100,而是95左右的值
    如果listBox加宽,比如width=500,这个差值可能也会变大,比如会是491左右
      

  4.   

    95是正常,在mouseMove的反应时间之内,鼠标已经移出了listbox了。
    按照你想实现的功能来看,你可以不必管那个
    你只要将你的右下角锁定为一个区域例如  e.X>=(width-50)&&e.X<=width e.Y<=(Height-50)&&e.Y>=Height
    也即鼠标的坐标点在你的区域范围内,就表示右下角
      

  5.   

    上面e.Y调转了,,区域就是右下角50X50像数区域,你可以任意设定
      

  6.   

    在这个帖子里我回复了,你可以参考下:如何让自定义控件支持鼠标拖动右小角让控件变大变小?
    http://community.csdn.net/Expert/topic/5489/5489409.xml?temp=.4018518