我有兩種形式。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