Domanda Mostra la finestra di dialogo al centro del suo genitore


È stato un disastro mostrare un DialogBox al centro della sua forma padre. Ecco un metodo per mostrare una finestra di dialogo.

Sto posizionando il suo genitore al centro ma non in grado di centrare il 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)
    {
    }
}

44
2017-07-07 06:35


origine


risposte:


Potresti voler controllare il Form.StartPosition proprietà.

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

qualcosa sulla falsariga di:

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

Questo ovviamente richiede l'impostazione del genitore del modulo.


83
2017-07-07 06:37



form1.StartPosition = FormStartPosition.CenterScreen;

Vedere http://msdn.microsoft.com/en-us/library/system.windows.forms.form.startposition(v=vs.110).aspx


9
2018-02-13 21:52



Inoltre, se si desidera impostare una posizione arbitraria è possibile utilizzare questo

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

4
2018-04-26 09:02



NewForm.Show();

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

1
2017-10-27 22:22



se stai creando un MessageBox personalizzato, puoi semplicemente inserire questo:

CenterToParent();

nel tuo MessageBox personalizzato formload() metodo.


1
2018-01-30 07:43