WinForm弹出窗口与父项形成关系
本文关键字:关系 窗口 WinForm | 更新日期: 2023-09-27 18:23:52
好的,我有一个WinForms C#程序正在Visual Studio 2010学习版中编写。该程序有两种形式,一种是称为"MainForm"的主形式,另一种是名为"ConfigForm"的辅助形式。MainForm上有一个弹出ConfigForm的按钮。
private void buttonConfig_Click(object sender, EventArgs e)
{
new ConfigForm().Show();
}
现在,当你点击按钮时,ConfigForm会弹出到任何它感觉像的地方。它不一定会弹出在MainForm上。如何将它弹出到主窗体的顶部?我已经尝试将ConfigForm的StartPosition设置为CenterParent,但这似乎没有任何作用。
对于这个问题,如何在ConfigForm打开时"锁定"程序。当ConfigForm打开时,我更希望用户不能导航回MainForm。
您可能正在寻找这样的东西:
private void buttonConfig_Click(object sender, EventArgs e)
{
using (ConfigForm cf = new ConfigForm()) {
cf.ShowDialog(this);
}
}
是的,确保ConfigForm.StartPosition = CenterParent
如您所述。
在ConfigForm窗体上,您可以让按钮设置窗体的DialogResults
,如下所示:
void buttonOK(object sender, EventArgs e) {
this.DialogResult = DialogResult.OK;
this.Close();
}
那么您的呼叫约定可以是:
private void buttonConfig_Click(object sender, EventArgs e)
{
using (ConfigForm cf = new ConfigForm()) {
if (cf.ShowDialog(this) == DialogResult.OK) {
// do something the user said was ok
}
}
}
尝试使用ShowDialog方法。