单击按钮时,我想打开一个对话框,此对话框位置将是
在中心小组
我尝试这段代码,但它不起作用:
FormDialog f = new FormDialog();
f.Parent = panel1;
f.StartPosition = FormStartPosition.CenterParent;
答案 0 :(得分:2)
编辑:我将坐标更改为屏幕坐标。面板的Left和Top是从容器的边缘计算出来的,而SetDesktopLocation则是预期的屏幕坐标。
在这种情况下,表单的父属性指向父表单而不是面板。为了在特定位置显示表单,您可以执行以下操作:
frm.StartPosition = FormStartPosition.Manual;
Point p = panel1.PointToScreen(new Point(panel1.Width / 2, panel1.Height / 2));
frm.SetDesktopLocation(p.X, p.Y);
frm.Show(this);
答案 1 :(得分:1)
您可以手动设置位置。首先,您可以在屏幕上获取panel
的中心位置,然后将表单放在此坐标处。
Form2 f = new Form2();
f.StartPosition = FormStartPosition.Manual;
Point panelCenterPosition = panel1.PointToScreen(new Point(panel1.Width / 2, panel1.Height / 2));
f.SetDesktopLocation(panelCenterPosition.X - f.Width/2, panelCenterPosition.Y - f.Height/2);
f.ShowDialog();