我正在开发一个项目,该项目需要在图像中水平的两个点之间有多个像素。我是在Windows应用程序表单中这样做的。
基本上当用户点击图像中的一个点然后点击其他点时,他应该在像素数量上获得水平距离。
我不知道这样做。 请帮忙。
答案 0 :(得分:0)
假设您的图片是使用Control
下的任何控件显示的,那么您将可以访问Control.MouseClick
事件(link)。
此活动使用MouseEventArgs
(link),其中包含属性X。
从那时起应该很清楚。
编辑:添加了这个非常简单的示例:
private int? x1;
private void MyImageControl_MouseClick(object sender, MouseEventArgs e)
{
if (x1.HasValue)
{
MessageBox.Show("Difference of " + Math.Abs(e.X - x1.Value).ToString());
x1 = null;
}
else
{
x1 = e.X;
}
}
答案 1 :(得分:0)
对于图像容器,我只是使用了一个pictureBox,虽然这可以使用标签或你想要的任何控件。
在任何功能之外:
private Boolean clicked_once = false;
private Point point1;
private Point point2;
然后我添加了一个MouseClick事件(不是Click事件):
private void pictureBox1_MouseClick(object sender, MouseEventArgs e)
{
if (clicked_once == false)
{
clicked_once = true;
point1 = e.Location;
}
else if (clicked_once == true)
{
clicked_once = false;
point2 = e.Location;
int distance = Math.Abs(point1.X - point2.X);
MessageBox.Show("Distance of pixels horizontally: " + distance.ToString());
}
}
应该工作。