从数学角度讲,Point是一个二维矢量,包含两个公共整型属性,属性用大写X和Y(c#中公共属性通常约定以大写字母开头)。当坐标不是整数值是float时,用PointF代替Point使用。html
经常使用的Size和Point结构其实相同,也有两个整型属性Width和Height,也有变体SizeF,但二者使用方式不一样。Point是说明实体在什么地方,而Size用于说明实体多大,它们之间能够显示转换。一个Point和一个Size能够组成一个Rectangle。另外Point和Size能够进行加减运算:point-size=point;size+size=size;可是point+point (是错误的),Point相加会认为没有意义。c#
1. 一类是屏幕坐标系,以显示屏左上角为(0,0)点的坐标,横坐标从左到右增长,纵坐标从上到下增长。post
2. 第二类是窗体坐标系,以winform窗体左上角为(0,0)点,横坐标从左到右增长,纵坐标从上到下增长。this
3. 第三类是窗体控件坐标系,以该控件的左上角为(0,0)点,横坐标从左到右增长,纵坐标从上到下增长。url
并提供了这三类坐标相互转换的方法,如PointToClient()、PointToScreen()等。spa
鼠标事件中,鼠标位置使用的是第二类的窗口坐标系。能够使用PointToScreen()方法将鼠标坐标转换为屏幕坐标系。orm
例:htm
Point p = this.PointToScreen(new Point(e.X, e.Y));blog
能够将两个point坐标进行合成事件