好的,我在Visual Studio 2010 Express中编写了一个WinForms C#程序。该程序有两种形式,主要形式称为“MainForm”,以及一种名为“ConfigForm”的辅助形式。 MainForm上有一个按钮,弹出ConfigForm。
private void buttonConfig_Click(object sender, EventArgs e)
{
new ConfigForm().Show();
}
现在,当您单击按钮时,ConfigForm会弹出任何感觉。它不一定会弹出MainForm。如何在主窗体上弹出它?我已经尝试将ConfigForm的StartPosition设置为CenterParent,但这似乎没有做任何事情。
就此而言,如何在ConfigForm打开时“锁定”程序。当ConfigForm打开时,如果用户无法导航回MainForm,我更愿意。
答案 0 :(得分:7)
你可能正在寻找这样的东西:
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
}
}
}
答案 1 :(得分:1)
尝试使用ShowDialog方法。