private void AddDebugDocument(object sender, EventArgs e) { TextDoc dummyDoc = CreateNewDocument(); if (dockPanel.DocumentStyle == DocumentStyle.SystemMdi) { dummyDoc.MdiParent = this; dummyDoc.Show(); } else { dummyDoc.Show(dockPanel, DockState.Document); } dockPanel.ResumeLayout(true, true); }
private TextDoc CreateNewDocument() { TextDoc dummyDoc = new TextDoc(); int count = 1; string text = $"Document{count}"; while (FindDocument(text) != null) { count++; text = $"Document{count}"; } dummyDoc.Text = text; return(dummyDoc); }
/// <summary> /// 持続文字列からコンテンツを取得する /// </summary> /// <param name="persistString"></param> /// <returns></returns> private IDockContent GetContentFromPersistString(string persistString) { if (persistString == typeof(SolutionExplorerDoc).ToString()) { return(m_solutionExplorer); } //else if (persistString == typeof(DummyPropertyWindow).ToString()) // return m_propertyWindow; //else if (persistString == typeof(DummyToolbox).ToString()) // return m_toolbox; else if (persistString == typeof(OutputWindow).ToString()) { return(m_outputWindow); } //else if (persistString == typeof(DummyTaskList).ToString()) // return m_taskList; else { // TextDocはGetPersistStringをオーバーライドして、余分な情報をpersistStringに追加 // 任意のDockContentがこの値をオーバーライドして、逆シリアル化に必要な情報を追加できます。 string[] parsedStrings = persistString.Split(new char[] { ',' }); if (parsedStrings.Length != 3) { return(null); } if (parsedStrings[0] != typeof(TextDoc).ToString()) { return(null); } TextDoc dummyDoc = new TextDoc(); if (parsedStrings[1] != string.Empty) { dummyDoc.FileName = parsedStrings[1]; } if (parsedStrings[2] != string.Empty) { dummyDoc.Text = parsedStrings[2]; } return(dummyDoc); } }