我有一个主窗体(fMain)和两个子窗体(fLogin和fAdmin)的winforms应用程序。 fLogin使用该代码是在一个按钮点击事件处理程序的主要形式按钮上显示:从另一个子窗口显示一个新的子窗口,但居中它在父窗口
// show login form; pass the main form in as an argument
fLogin formLogin = new fLogin(this);
formLogin.StartPosition = FormStartPosition.CenterParent;
formLogin.ShowDialog(this);
在构造为fLogin,我的主要形式分配给专用构件水平变量。
// fLogin
fMain _mainForm;
// fLogin constructor
public fLogin(fMain mainForm)
{
InitializeComponent();
_mainForm = mainForm;
}
正如你可能想象的那样,fLogin是一个带有用户名和密码以及几个按钮的文本框的小表单。当我的用户输入他们的凭证并单击OK按钮时,fLogin将用服务器验证信息,如果信息良好,fLogin将消失并显示fAdmin。目前,我显示fAdmin这样的:
// hide formLogin right away
this.Hide()
// show admin form
fAdmin formAdmin = new fAdmin();
formAdmin.StartPosition = FormStartPosition.CenterParent;
formAdmin.Show(_mainForm); // pass main form as owner of admin form
// close formLogin
this.Close();
我无法设置formAdmin.Parent = _mainForm并获得对话框神奇中心本身。因此,我将_mainForm作为formAdmin的所有者传递给formAdmin.Show(),但似乎并没有帮助让formAdmin居中。是否有一种简单的方法可以让formAdmin显示在主窗体的中心?
这两个好主意。非常感谢你。 – user685869