更新pictureBox上的圆圈位置

时间:2017-02-22 16:19:51

标签: c# graphics drawing picturebox

我正在使用pictureBox来移动2个线性阶段;当mouseDown事件触发时,pictureBox坐标被重新映射以匹配轴的最大行程长度,然后发送给它们以执行移动。

为了改善此功能,我在此图像上添加了一个小点,以跟踪mouseDown事件期间鼠标的当前位置。 每当鼠标移动时,点必须更新它的位置;为了做到这一点,我使用了gfx.Clear(Color.White);删除前一个并绘制新的。 问题是要理解轴的正确定位,pictureBox应该显示轴的照片;但是调用gfx.Clear(Color)会清除图像并留下白色背景。

有没有办法在不调用gfx.Clear的情况下更新点位置(为了保留图像?)

    <table>
    <tr>
    <td id="Refreshtable">
        <input type="text" id="Dateimporttime" />
    </td>
    </tr>
   </table>

   <script src="~/Scripts/jquery-1.10.2.min.js"></script>
   <script>
     $(function () {
     $.ajax({
         type: "GET",
         url: '@Url.Action("GetDateTime","Page")',
         datatype: "Json",
         success: function (data) {
             $("#Dateimporttime").val(data.time)
             }
         });
      });
     </script> 
   <script type="text/javascript">

   $(function () {
    setInterval(function () {  $('#Refreshtable').load('/Page/GetDateTime'); }, 50000),
        $("#Dateimporttime").val(data.time)
});
</script>

1 个答案:

答案 0 :(得分:0)

我要做的是使用PictureBox.Paint事件绘制必须跟随鼠标移动的点。首先,我声明Point可以在任何移动时存储鼠标位置:

Point mousePosition;

然后,在PictureBox.MouseMove事件处理程序中,我会存储此位置并使PictureBox无效:

private void gridImage_MouseMove(object sender, MouseEventArgs e)
{
    mousePosition = e.Location;
    pictureBox1.Invalidate();
}

最后,在PictureBox.Paint我只使用鼠标位置画一个圆圈:

private void gridImage_Paint(object sender, PaintEventArgs e)
{
    e.Graphics.DrawEllipse(Pens.Red, new Rectangle(mousePosition, new Size(5,5)));
}

希望这能引导你朝着正确的方向前进