.NET(C#)环境下,如何在panel容器里自由拖动picturebox控件
网上找了很多资料,只有CSDN有段代码,不过下载后还是看不明白。希望哪位高手能给个实际例子供本人参考下,感激不尽~~实现功能:panel容器内,包含图片的pictureb...
网上找了很多资料,只有CSDN有段代码,不过下载后还是看不明白。希望哪位高手能给个实际例子供本人参考下,感激不尽~~
实现功能:panel容器内,包含图片的picturebox能随鼠标左键自用拖动。 展开
实现功能:panel容器内,包含图片的picturebox能随鼠标左键自用拖动。 展开
展开全部
思路是这样的.得有三个变量.
记录x坐标: int xPos;
记录y坐标: int yPos;
记录是否按下鼠标: bool MoveFlag;
//在picturebox的鼠标按下事件里,记录三个变量.
private void picBox_MouseDown(object sender, MouseEventArgs e)
{
MoveFlag = true;//已经按下.
xPos = e.X;//当前x坐标.
yPos = e.Y;//当前y坐标.
}
//在picturebox的鼠标按下事件里.
private void picBox_MouseUp(object sender, MouseEventArgs e)
{
MoveFlag = false;
}
//在picturebox鼠标移动
private void picBox_MouseMove(object sender, MouseEventArgs e)
{
if (MoveFlag)
{
picBox.Left += Convert.ToInt16(e.X - xPos);//设置x坐标.
picBox.Top += Convert.ToInt16(e.Y - yPos);//设置y坐标.
}
}
这样就可以实现控件在容器里的移动
记录x坐标: int xPos;
记录y坐标: int yPos;
记录是否按下鼠标: bool MoveFlag;
//在picturebox的鼠标按下事件里,记录三个变量.
private void picBox_MouseDown(object sender, MouseEventArgs e)
{
MoveFlag = true;//已经按下.
xPos = e.X;//当前x坐标.
yPos = e.Y;//当前y坐标.
}
//在picturebox的鼠标按下事件里.
private void picBox_MouseUp(object sender, MouseEventArgs e)
{
MoveFlag = false;
}
//在picturebox鼠标移动
private void picBox_MouseMove(object sender, MouseEventArgs e)
{
if (MoveFlag)
{
picBox.Left += Convert.ToInt16(e.X - xPos);//设置x坐标.
picBox.Top += Convert.ToInt16(e.Y - yPos);//设置y坐标.
}
}
这样就可以实现控件在容器里的移动
展开全部
1楼正解。
先弄明白思路,在看别人的代码。
图片随鼠标拖动,自然要在MouseMove事件里实现图片换位置的功能了。
但是并不是任何情况下图片都要随鼠标移动,只有在左键按下的时候。这就需要设置一个环境变量。这个环境变量表示鼠标左键是否按下。影响这个变量的也就是鼠标的up和down事件。
然后,你只需要把实现图片换位置的代码外面加个条件,判断下环境变量就OK了。
先弄明白思路,在看别人的代码。
图片随鼠标拖动,自然要在MouseMove事件里实现图片换位置的功能了。
但是并不是任何情况下图片都要随鼠标移动,只有在左键按下的时候。这就需要设置一个环境变量。这个环境变量表示鼠标左键是否按下。影响这个变量的也就是鼠标的up和down事件。
然后,你只需要把实现图片换位置的代码外面加个条件,判断下环境变量就OK了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
有源代码,就 多试试。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
有代码 还看不懂
再给你代码 你怎么看啊
再给你代码 你怎么看啊
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询