我有两种形式。C#ShowDialog父窗体为空
LoadWorkstationFile提示用户输入他们想要加载的ID。
DisplayDataForm显示他们在前一个屏幕上选择的数据。
在DisplayDataForm他们可以点击一个选项加载新的数据,它调用LoadDataForm作为ShowDiaglog:
private void openToolStripMenuItem_Click(object sender, EventArgs e)
{
var answer = MessageBox.Show("Do you wish to save the current work file before continuing?", "Confirmation",
MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question);
if (answer == DialogResult.Cancel)
return;
if (answer == DialogResult.Yes)
SaveWorkFile();
var prevworkstationid = Configuration.WorkstationId;
var lw = new LoadWorkstationFile();
lw.ShowDialog(this);
if (Configuration.WorkstationId != prevworkstationid)
{
LoadData();
}
}
正如你所看到的,我再次在同一屏幕促使他们之前。
在LoadWorkstationFile它具有以下的代码:
if (this.Parent == null)
{
var sc = new ScanCheck();
sc.Show();
this.Hide();
}
初始负载一切都很好。当我想再次加载数据时,它已经加载,我最终得到2个屏幕导致Parent总是等于空。
我有错误的想法吗?使用.ShowDialog调用父级时应该是DisplayDataForm?
像往常一样感谢。
在我第一眼看到的MSDN文件,我没有找到该属性,但后来我更新了我的评论;-) – 2011-04-20 14:20:16
@Mario勺 - :)好老“RTFM”。感谢intellitrace,intellisense和常识编程的众神:) 我必须承认,我必须在回答之前用Intellisense进行验证,即使我使用了这个属性数百万次 – NightDweller 2011-04-20 14:46:35
@NightDweller现在我有了一个新的开发环境(WinWord ),并且必须写代号而不是代码...所以它没有那么奢侈:-( – 2011-04-20 14:51:25