winform开发中的几个坐标
前言
我们在开发winform程序的过程中经常会遇到各种坐标,本文就是对winfrom程序开发中的坐标进行总结:
1、控件左上角位置相对于父控件的坐标
winfrom界面中除了窗体以外有很多控件,这些控件都有自己的父控件,也叫作父容器,那么这些控件的左上角相对于其父容器的左上角的坐标是怎么获取的呢?
其实有一个属性叫做Location属性,下图中蓝色控件是一个Picturebox控件,蓝色控件的父容器就是窗体Form1,水平方向是X正方向,Y方向是垂直向下方向,可以看到,控件左上角相对于父控件的坐标值是:X:523,y=38,当然这里的窗体左上角是不包含窗体的边框的,下图显示的是一个带有边框的窗体。
2、窗体左上角位置相对于屏幕左上角的坐标
winform中有很多的窗体,这些窗体没有父控件,所以它的Location属性指的是左上角距离屏幕左上角的坐标。下图可以看出Form1窗体的左上角距离屏幕左上角坐标X=0,y=51,这里的X=0看起来有点勉强,因为距离我的屏幕最左边还有一点距离,这个坐标是Form1.Location属性获取。
3、鼠标的位置相对于所在控件左上角的坐标
当我们使用鼠标在控件上移动的时候,鼠标的位置相对于控件左上角的位置是不断发生改变的,下图中的白色鼠标的位置,相对于红色方框所指的蓝色控件的左上角在x方向距离90,y方向距离6,这个就是鼠标位置距离控件左上角的坐标,这个坐标可以通过控件的一些事件获取,比如MouseMove事件,该事件中,当鼠标在控件上移动时就会触发该事件,事件的MouseEventArgs 参数中可以通过e.Location属性来获取到鼠标距离控件左上角的坐标,代码如下。
private void pictureBox1_MouseMove(object sender, MouseEventArgs e){label3.Text = e.Location.ToString();}
4、鼠标的位置相对于屏幕左上角的坐标
我们鼠标在屏幕上移动时,距离屏幕左上角的坐标一直在变化的,这个属性可以通过Cursor类的Position属性获取,代码如下:
this.label7.Text = Cursor.Position.ToString();