예제 #1
0
        private void InitializeTabControls()
        {
            _applicationState.Initializing = true;
            if (!_logicManager.HasExistingDatabase)
            {
                _applicationState.DatabaseLoaded = false;
                _applicationState.DatabaseExists = false;
            }
            else
            {
                _applicationState.DatabaseExists = true;
            }

            // Dispose current Tab controls
            foreach (TabPage tabPage in tabControlNotepad.TabPages)
            {
                foreach (Control tabPageControl in tabPage.Controls)
                {
                    tabPageControl.Dispose();
                }
                tabPage.Dispose();
            }

            tabControlNotepad.TabPages.Clear();


            for (int index = 0; index < _logicManager.PageCount; index++)
            {
                var tabPageControl = new MemoTabPageControl("MemoTabPageControl", index)
                {
                    Dock = DockStyle.Fill
                };
                var tabPage = new TabPage(_logicManager.GetTabPageLabel(index));
                tabPageControl.TabTextDataChanged += tabPageControl_TabTextDataChanged;

                tabPage.Controls.Add(tabPageControl);

                if (ControlHelper.GetChildControlByName(tabPageControl, tabPageControl.TabPageControlTextboxName) is RichTextBox richTextBox)
                {
                    SecureMemoFontSettings fontSettings = _appSettingsService.Settings.FontSettings;
                    richTextBox.Font              = new Font(fontSettings.FontFamily, fontSettings.FontSize, fontSettings.Style);
                    richTextBox.Text              = _logicManager.GetTabPageText(index);
                    richTextBox.ContextMenuStrip  = contextMenuTextArea;
                    richTextBox.SelectionChanged += RichTextBox_SelectionChanged;
                }

                tabControlNotepad.TabPages.Add(tabPage);
            }

            tabControlNotepad.SelectedIndex       = _logicManager.ActivePageIndex;
            _applicationState.Initializing        = false;
            _applicationState.FontSettingsChanged = false;
            UpdateApplicationState();
        }