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



我有一个主表单和一些复选框。当我单击其中一个复选框时,我会显示一个子窗体,其中包含与单击的复选框相关的信息。问题是,尽管我将子窗体的StartPosition设置为Manual,并将窗体Location设置为(CheckBox.Location.X+20,CheckBox.Lognity.Y(,但子窗体弹出的位置离单击的CheckBox很远

复选框。位置是相对于您所在的窗体的。窗体客户端区域的左上角点是0,0,它上的所有控件都是相对于该点定位的。

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

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

frmSubForm.Location = this.PointToScreen(new Point(CheckBox.Location.X + 20, CheckBox.Location.Y));

最新更新