相对于位于主窗体上的控件的位置定位子窗体

时间:2018-07-29 07:08:06

标签: c# forms

我有一个主窗体和许多CheckBoxes。 当我单击其中一个复选框时,会显示一个子窗体,其中包含与单击的复选框有关的信息。 问题是,即使我将子表单的StartPosition设置为Manual并将表单位置设置为(CheckBox.Location.X + 20,CheckBox.Location.Y),子表单也会从单击的CheckBox弹出来很远。

1 个答案:

答案 0 :(得分:0)

CheckBox.Location相对于您所在的表单。窗体工作区的左上角点是0,0,并且窗体上所有控件的位置都相对于该点。

您需要某种将控件的相对位置转换为屏幕位置的方法,该方法由PointToScreen提供。

假设您的子表单名为frmSubForm,您将使用以下内容:

STYLE_CHOICES = sorted((item, item) for item in get_all_styles())