【发布时间】:2020-09-07 09:00:04
【问题描述】:
当我打开一个文本文件时,我想在父窗体中打开一个 Mdi 子窗体。问题是,它根本不显示。在你问之前,是的,它的主窗体绝对设置为 MDI 容器。请忽略子窗体除了假定的显示之外什么都不做的事实。
private void OpenToolStripButton_Click(object sender, EventArgs e)
{
var dialog = new OpenFileDialog() { Filter = "Statement files|* .STA" };
var result = dialog.ShowDialog();
if (result == System.Windows.Forms.DialogResult.OK)
{
StatementForm statementForm = new StatementForm();
statementForm.Text = dialog.FileName;
statementForm.MdiParent = _mainForm;
statementForm.StartPosition = FormStartPosition.CenterParent;
statementForm.Dock = DockStyle.Fill;
statementForm.Show();
}
}
【问题讨论】:
-
我的最佳猜测:
_mainForm是null。 -
问题是,如果我删除“statementForm.MdiParent = _mainForm;”每次我打开一个 txt 文件时,它都会抽出“子窗体”(我知道它们在那种情况下不是子窗体)。我认为这意味着 _mainform 不为空。那以及我没有收到关于它为空的警告的事实
-
如何启动
_mainForm变量? -
私有 MainForm _mainForm = new MainForm() { IsMdiContainer = true };
-
看来,您正在创建
MainForm的新实例,而不是使用现有实例。试试看:statementForm.MdiParent = this //referes to a form which calls this method