1
在我的主窗体中,我使用ShowDialog()打开一个新窗体(让它称为父窗体)。在父窗体中,我有一个加载OpenFileDialog的按钮,当我加载图像并单击打开按钮时,OpenFileDialog关闭,但它也关闭了父窗口,我不希望发生这种情况。对话窗口中的对话框 - 父对话框关闭子对话框
主要形式代码:
// ADD GRAPHICS BUTTON
private void bAddGraphics_Click(object sender, EventArgs e)
{
NewGraphics newGraphics = new NewGraphics();
newGraphics.ShowDialog();
if (newGraphics.DialogResult == DialogResult.OK)
{
Core.Graphics tempGraphicsObject = new Core.Graphics();
tempGraphicsObject.name = newGraphics.name;
tempGraphicsObject.background = newGraphics.bgImage;
core.NewGraphics(tempGraphicsObject);
generateSingleGraphicsControl(core.project.graphics[core.project.graphics.Count-1].id, core.project.graphics[core.project.graphics.Count-1].name);
}
newGraphics.Dispose();
}
父窗体(对话)
OpenFileDialog openFileDialog = new OpenFileDialog();
DialogResult result = openFileDialog.ShowDialog();
if (result == DialogResult.OK)
{
tbBackground.Text = openFileDialog.FileName;
bgImage = Image.FromFile(tbBackground.Text);
}
openFileDialog.Dispose();
是不是因为我用的DialogResult两次或者也许是因为我在一个对话框窗口调用的ShowDialog()?如果我不会在父类上使用ShowDialog(),但只是Show()它可以正常工作,但不能使用DialogResult属性。有没有办法解决它,或者你只是不能使用ShowDialog()两次?
你检查' newGraphics.DialogResult'为“主”形式。你在哪里设置“父母”形式的价值?我没有在您发布的代码中看到它。 –
对不起,父窗体的dialogresult属性由Cancel和OK按钮设置。 – Safiron
但是父窗体关闭,即使你没有按下任何一个按钮? –