繁体   English   中英

在其父项的中心显示对话框

[英]Show Dialog box at center of its parent

在其父窗体的中心显示一个对话框是一团糟。 这是一种显示对话框的方法。

我将其父级定位到中心但无法将 DialogBox 居中

private void OpenForm(Object point, Object height, Object width)
{
    FormLoading frm = new FormLoading();
    Point temp = (Point)point;
    Point location = new Point(temp.X + (int)((int)width) / 2, 
                               temp.Y + (int)((int)height) / 2);
    frm.Location = location;
    frm.ShowDialog();
}

private void btnView_Click(object sender, EventArgs e)
{
    try
    {                    
        ThreadStart starter= delegate { OpenForm(currentScreenLocation, 
                                                 this.Height, this.Width); };
        Thread t = new Thread(starter);
        t.Start();
        ////// Some functionality here...
        t.Abort();
    }
    catch (Exception)
    {
    }
}

您可能需要检查Form.StartPosition属性。

http://msdn.microsoft.com/en-us/library/system.windows.forms.form.startposition.aspx

类似于:

private void OpenForm(Form parent)
{
    FormLoading frm = new FormLoading();
    frm.Parent = parent;
    frm.StartPosition = FormStartPosition.CenterParent;
    frm.ShowDialog();
}

这当然需要设置表单的父级。

form1.StartPosition = FormStartPosition.CenterScreen;

请参阅http://msdn.microsoft.com/en-us/library/system.windows.forms.form.startposition(v=vs.110)。

另外,如果你想设置任意位置,你可以使用这个

FormLoading frm = new FormLoading();
Point location = new Point(300, 400);
frm.StartPosition = System.Windows.Forms.FormStartPosition.Manual;
frm.Location = location;
frm.ShowDialog();
NewForm.Show();

NewForm.Top = (this.Top + (this.Height / 2)) - NewForm.Height / 2;
NewForm.Left = (this.Left + (this.Width / 2)) - NewForm.Width / 2;

如果您正在制作自定义 MessageBox,您可以简单地输入:

CenterToParent();

在您的自定义 MessageBox formload()方法中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM