我有一个表单,我想打开另一个表单,它显示在父表单的中间。因此我使用了这段代码:
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的。附加信息:循环控制 参考已经发布。控件不能拥有自己或是 上级。
答案 0 :(得分:1)
修复实际上非常简单,删除this
并在using语句的开头添加此行。
form.StartPosition = FormStartPosition.CenterParent;