问题描述
当我打开文本文件时,我想在父窗体中打开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,如下所示:
static class Program
{
internal static MainForm _mainForm;
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
_mainForm = new MainForm();
Application.Run(_mainForm);
}
}
然后您可以将其分配为父表单:
statementForm.MdiParent = Program._mainForm;