是图片信息信息还是坐标值.
坐标值就是鼠标单击事件里写:
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按下更新插入这个位置坐标作为顶点,再去点下区域终点大概位置,按下另一个按钮更新查询插入他的终点.
要这么做的,我是用图片来做电子地图,你如果还看不懂留个邮箱,我发个例子给你看一下.
如果是图形很规则,那倒不必这么去点啊点,计算一下坐标很容易就解决了问题.
如果是电子地图,图形乱七八糟的,有的大有的小,奇形怪状那你就要这么描坐标了
你绘图的时候肯定将数据坐标(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 ));
}