Методы, работающие по-разному, когда вкладки удаляются, а затем добавляются новые - PullRequest
0 голосов
/ 24 декабря 2018

У меня есть tabcontrol, который может создавать новые и закрывать текущие вкладки.Внутри вкладок находится пользовательский элемент управления, в котором находится элемент управления scintillaNET.

Когда у меня есть любое количество вкладок, созданных без их закрытия, методы Cut / Copy / Paste работают нормально.Однако, если закрываются все вкладки, кроме одной, а затем создаются новые, эти методы больше не работают на новых вкладках.

т.е. я открываю 10 вкладок, метод работает.Затем я закрываю вкладку 1-9, оставляя вкладку 10. Затем я создаю 3 новые вкладки.Методы больше не работают.

Соответствующий код:

public partial class frmMain : Form
{
    //scintillaControl is the user control
    List<scintillaControl> controls = new List<scintillaControl>();

    private void NewTab() //called when 'New File is pressed'
    {
        scintillaControl newsc = new scintillaControl();
        newsc.Dock = DockStyle.Fill;
        controls.Add(newsc);
        TabPage newTab = new TabPage();
        newTab.Controls.Add(newsc);
        tabCtrl.TabPages.Add(newTab);
    }

    private void CutMethod()
    {
        int selectedTab = tabCtrl.SelectedIndex;
        scintillaControl sc = controls[selectedTab];
        sc.txtEditor.Cut();

    }
}

Я думаю, что это как-то связано с тем, что tabCtrl.SelectedIndex портится, когда вкладки закрываются и открываются новые.При необходимости я могу опубликовать код закрывающей вкладки.

...