如何将控件置于主屏幕中心?

时间:2015-02-01 01:58:52

标签: c# winforms

这应该在X轴上居中menuLabel。但是当我运行它时,menuLabel太远了。

为什么会发生这种情况?

menuLabel.Left = Screen.PrimaryScreen.Bounds.Left +
                     (Screen.PrimaryScreen.Bounds.Width / 2) - (menuLabel.Width / 2);

1 个答案:

答案 0 :(得分:0)

您的menuLabel位于某个Form或其他容器控件上,因此其坐标相对于该父控件或Form。 要将屏幕坐标转换为本地坐标,请使用Control.PointToClient方法 Form作为容器的示例(假设此代码位于Form的类中):

menuLabel.Left = PointToClient(Screen.PrimaryScreen.Bounds.Left +
                 (Screen.PrimaryScreen.Bounds.Width - menuLabel.Width) / 2);

someControl作为容器的示例:

menuLabel.Left = someControl.PointToClient(Screen.PrimaryScreen.Bounds.Left +
                 (Screen.PrimaryScreen.Bounds.Width - menuLabel.Width) / 2);