我有一个主窗体和许多CheckBoxes。 当我单击其中一个复选框时,会显示一个子窗体,其中包含与单击的复选框有关的信息。 问题是,即使我将子表单的StartPosition设置为Manual并将表单位置设置为(CheckBox.Location.X + 20,CheckBox.Location.Y),子表单也会从单击的CheckBox弹出来很远。
答案 0 :(得分:0)
CheckBox.Location相对于您所在的表单。窗体工作区的左上角点是0,0,并且窗体上所有控件的位置都相对于该点。
您需要某种将控件的相对位置转换为屏幕位置的方法,该方法由PointToScreen提供。
假设您的子表单名为frmSubForm,您将使用以下内容:
STYLE_CHOICES = sorted((item, item) for item in get_all_styles())