在另一个表单中间生成小表单

时间:2017-02-09 13:21:49

标签: c# forms

我有一个表单,我想打开另一个表单,它显示在父表单的中间。因此我使用了这段代码:

using (var form = new Login())
{
    var result = form.ShowDialog(this);
    if (result == DialogResult.OK)
    {
        MessageBox.Show(form.getClientID);
    }
}

在Login-Form中,我将StartPosition设置为CenterParent。如果我这样称它是有效的,但我认为问题是"这个"在这里:var result = form.ShowDialog(this);但我不知道如何告诉它在哪里成为另一种形式。 我在登录表单中的代码如下所示:

public string getClientID { get; set; }

public Login()
{
    InitializeComponent();
}

private void loginButton_Click(object sender, EventArgs e)
{
    this.getClientID = this.clientID.Text;
    this.DialogResult = DialogResult.OK;
    this.Close();
}

非常感谢任何帮助!

编辑: 这是我var result = form.ShowDialog(this)上的错误:

  

类型" System.ArgumentException"的异常错误发生在   System.Windows.Forms.dll的。附加信息:循环控制   参考已经发布。控件不能拥有自己或是   上级。

1 个答案:

答案 0 :(得分:1)

修复实际上非常简单,删除this并在using语句的开头添加此行。

form.StartPosition = FormStartPosition.CenterParent;