【Winform】窗体的坐标体系
一、Winform 中的坐标系
(1)第一类是屏幕坐标系,以显示屏左上角为(0,0)点的坐标。
(2)第二类是窗体坐标系,以winform窗体左上角为(0,0)点。
(3)第三类是窗体控件坐标系,以该控件的左上角为(0,0)点。
以上三类的坐标原点都是其左上角(屏幕左上角、窗体左上角、控件左上角)
从上图看,对于窗体的起始位置,可以利用窗体的Top和Left属性设置,也可以用窗体的Location属性,代码如下:
F1.Top = 300;
F1.Left = 200;
上面两行代码便将F1的起始位置设置为(300, 200),即距离屏幕顶部300像素,距离屏幕左边200像素。
注意:
(1)Bottom属性是下端与顶部的距离,而不是与底部的距离。
(2)窗体控件的位置是相对父窗口而言的。
二、控件的各种坐标获取
(1)Control.MousePosition可以获取鼠标光标的位置(以屏幕坐标表示);
(2)Ctrlxx.Location获取或设置该控件的左上角相对于其容器的左上角的坐标。
当在触发事件中获取控件坐标时:
Point m_LastLabelPoint = (sender as Label).Location;
(3)有时候使用控件的屏幕坐标更方便计算,但控件只能获取控件相对容器的坐标,可以将控件坐标换算成屏幕坐标:
Point m_panelPoint = PointToScreen((sender as Panel).Location);
/*******相与枕藉乎舟中,不知东方之既白*******/