c#,在picturebox里画了一幅曲面图,如何能做到:当我的鼠标点击图的时候显示点击位置的值? 100
2个回答
展开全部
是图片信息信息还是坐标值.
坐标值就是鼠标单击事件里写:
string 坐标="( " + e.X.ToString() + " , " + e.Y.ToString() + " )"
如果是图片上信息,那就要查询数据库了.不管用什么办法你先要知道图片中某个点的坐标.
一个点在实际应用中你肯定是肉眼找不到的,所以必须锁定在一个区域范围,可以假设是一个长方形范围为一个点的位置区域,当你鼠标点在长方形区域内任意位置显示这个区域的信息.那就必须要写数据库去查询得到.数据表格式为:
区域信息 | 区域名称 | X轴起点坐标 | Y轴起点坐标 | X轴终点坐标 | Y轴终点坐标
------------------------------------------------------------------------------------------------------------------------
.......
这样矩形左上角就可以当成起始坐标,右下脚就可以当作终点坐标.鼠标在程序中点的坐标位置就可以去查数据库了:
Select 区域信息, 区域名称 where X轴起点坐标>='"+e.X+"' and X终点坐标<='"+e.X+"' and Y轴起点坐标>='"+e.Y+"' and Y轴终点坐标<='"+e.Y+"'
用一个文本信息来存储在Tip文本提示事件中或者TextBox 、Label中就读出了鼠标点击地方的信息.
但是建立这个表是有点技术含量的,你不可能拿个本子去抄坐标,那样图片太大的情况下会累死你,而且容易出错.我是这么做的,额外建立两个按钮事件来向表中更新插入图片的起点和终点坐标.不一定要那么十分的准确,大概一个范围内,你点在图片小范围顶点,选个区域名称,按钮1按下更新插入这个位置坐标作为顶点,再去点下区域终点大概位置,按下另一个按钮更新查询插入他的终点.
要这么做的,我是用图片来做电子地图,你如果还看不懂留个邮箱,我发个例子给你看一下.
如果是图形很规则,那倒不必这么去点啊点,计算一下坐标很容易就解决了问题.
如果是电子地图,图形乱七八糟的,有的大有的小,奇形怪状那你就要这么描坐标了
坐标值就是鼠标单击事件里写:
string 坐标="( " + e.X.ToString() + " , " + e.Y.ToString() + " )"
如果是图片上信息,那就要查询数据库了.不管用什么办法你先要知道图片中某个点的坐标.
一个点在实际应用中你肯定是肉眼找不到的,所以必须锁定在一个区域范围,可以假设是一个长方形范围为一个点的位置区域,当你鼠标点在长方形区域内任意位置显示这个区域的信息.那就必须要写数据库去查询得到.数据表格式为:
区域信息 | 区域名称 | X轴起点坐标 | Y轴起点坐标 | X轴终点坐标 | Y轴终点坐标
------------------------------------------------------------------------------------------------------------------------
.......
这样矩形左上角就可以当成起始坐标,右下脚就可以当作终点坐标.鼠标在程序中点的坐标位置就可以去查数据库了:
Select 区域信息, 区域名称 where X轴起点坐标>='"+e.X+"' and X终点坐标<='"+e.X+"' and Y轴起点坐标>='"+e.Y+"' and Y轴终点坐标<='"+e.Y+"'
用一个文本信息来存储在Tip文本提示事件中或者TextBox 、Label中就读出了鼠标点击地方的信息.
但是建立这个表是有点技术含量的,你不可能拿个本子去抄坐标,那样图片太大的情况下会累死你,而且容易出错.我是这么做的,额外建立两个按钮事件来向表中更新插入图片的起点和终点坐标.不一定要那么十分的准确,大概一个范围内,你点在图片小范围顶点,选个区域名称,按钮1按下更新插入这个位置坐标作为顶点,再去点下区域终点大概位置,按下另一个按钮更新查询插入他的终点.
要这么做的,我是用图片来做电子地图,你如果还看不懂留个邮箱,我发个例子给你看一下.
如果是图形很规则,那倒不必这么去点啊点,计算一下坐标很容易就解决了问题.
如果是电子地图,图形乱七八糟的,有的大有的小,奇形怪状那你就要这么描坐标了
追问
您好 wsykty@126.com 求例子学习一下 十分感谢
您好 急求例子学习。。
追答
已经发送,刚刚才看到
展开全部
你绘图的时候肯定将数据坐标(x,y)转换成了PictureBox坐标系中的象素坐标(x1,y1)用于绘图了吧,那么你只需要在鼠标点击时将鼠标处象素坐标(x1,y1)反算成(x,y)再显示即可了呀~
可以通过以下方法获取鼠标点下的象素坐标
public Form1()
{
InitializeComponent();
this.pictureBox1.MouseClick += new MouseEventHandler(pictureBox1_MouseClick);
}
void pictureBox1_MouseClick(object sender, MouseEventArgs e)
{
MessageBox.Show(string.Format("象素坐标({0},{1})",e.X,e.Y ));
}
可以通过以下方法获取鼠标点下的象素坐标
public Form1()
{
InitializeComponent();
this.pictureBox1.MouseClick += new MouseEventHandler(pictureBox1_MouseClick);
}
void pictureBox1_MouseClick(object sender, MouseEventArgs e)
{
MessageBox.Show(string.Format("象素坐标({0},{1})",e.X,e.Y ));
}
追问
是把像素坐标e.X和e.Y反算成(x,y)吗 我是纯新手 之前画图的那个程序也是找的现成代码,主要是为了完成老师布置的任务,写算法这些我还可以,这种事件类的我就不行了
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询