public Control GetControl()
        {
            tab = new TabControl {
                Dock = DockStyle.Fill
            };

            Control bookmarkedRow = null;     // the row we want to start at

            foreach (var ecl in _file.eclDumps)
            {
                var page = new TabPage(ecl._blockName);
                page.AutoScroll = true;

                foreach (var eclAddr in ecl.decodedEcl.Keys.Reverse())
                {
                    var eclText = ViewerHelper.CreateTextBox();
                    eclText.Text = ecl.decodedEcl[eclAddr];
                    eclText.Dock = DockStyle.Fill;
                    var eclAnnotation = ViewerHelper.CreateTextBox();
                    if (ecl.annotations.ContainsKey(eclAddr))
                    {
                        eclAnnotation.Text      = ecl.annotations[eclAddr];
                        eclText.BackColor       = System.Drawing.Color.LightBlue;
                        eclAnnotation.BackColor = System.Drawing.Color.LightBlue;
                    }
                    eclAnnotation.Width = 300;
                    eclAnnotation.Dock  = DockStyle.Right;
                    //eclText.Dock = DockStyle.Top;
                    var row = ViewerHelper.CreateRow();
                    page.Controls.Add(row);
                    row.Controls.Add(eclText);

                    row.Controls.Add(eclAnnotation);
                    if (ChangeFileEventArgs.targetPlace != "" && eclAnnotation.Text.Contains(ChangeFileEventArgs.targetPlace) && page.Text == ChangeFileEventArgs.currentDaxId.ToString())
                    {
                        bookmarkedRow = row;
                    }
                }
                tab.TabPages.Add(page);
                if (page.Text == ChangeFileEventArgs.currentDaxId.ToString())
                {
                    tab.SelectedTab = page;
                    page.ScrollControlIntoView(bookmarkedRow);
                }
            }
            var stringPage = new TabPage("ECL Text");

            stringPage.AutoScroll = true;
            var control = ViewerHelper.CreateTextBoxMultiline();

            control.Text = _file.ToString();
            stringPage.Controls.Add(control);
            tab.TabPages.Add(stringPage);
            return(tab);
        }
        public Control GetControl()
        {
            tab = new TabControl {
                Dock = DockStyle.Fill
            };

            foreach (var ecl in _file.eclDumps)
            {
                var   page      = new TabPage(ecl._blockName);
                Panel codePanel = (Panel)ViewerHelper.CreatePanel();
                codePanel.Name = "codepanel";
                codePanel.Tag  = ecl;
                //page.AutoScroll = true;
                page.Controls.Add(codePanel);

                // fill the code panel with the decoded ecl code
                int bookMarkIndex = FillECLCodePanel(page);
                // add a search bar and 'select all' button to the top of the ecl listing
                var selectAll = ViewerHelper.CreateButton();
                selectAll.Text        = "Copy to clipboard";
                selectAll.MouseClick += selectAllRows;
                selectAll.Dock        = DockStyle.Right;

                var findNext = ViewerHelper.CreateButton();
                findNext.Text        = "find next";
                findNext.MouseClick += searchEclNext;
                findNext.Dock        = DockStyle.Right;

                TextBox headerText = (TextBox)ViewerHelper.CreateTextBox();
                headerText.ReadOnly     = false;
                headerText.Text         = "Type text to find";
                headerText.TextChanged += searchEcl;
                headerText.KeyDown     += searchEclKeyPressed;
                headerText.Dock         = DockStyle.Fill;
                var row1 = ViewerHelper.CreateRow();
                page.Controls.Add(row1);
                row1.Controls.Add(headerText);
                row1.Controls.Add(findNext);
                row1.Controls.Add(selectAll);

                tab.TabPages.Add(page);
                if (page.Text == ChangeFileEventArgs.currentDaxId.ToString())
                {
                    tab.SelectedTab = page;
                    ListView lv  = (ListView)codePanel.Controls.Find("eclView", false)[0];
                    var      lvi = lv.Items[bookMarkIndex];
                    lvi.Selected = true;
                    lv.Select();
                    lv.TopItem = lvi;
                }
            }
            var stringPage = new TabPage("ECL Text");

            stringPage.AutoScroll = true;
            var control = ViewerHelper.CreateTextBoxMultiline();

            control.Text = _file.ToString();
            stringPage.Controls.Add(control);
            tab.TabPages.Add(stringPage);
            tab.Selected   += ECLTabControlLoadSelected;
            tab.Deselected += ECLTabControlUnloadDeselected;
            return(tab);
        }