Поиск вкладки в tabcontrol C # - PullRequest
7 голосов
/ 28 февраля 2012

В моем приложении есть tabcontrol. У меня есть список, который содержит строку № ошибки и имя файла и путь к файлу. При двойном щелчке я хочу добавить новую страницу вкладки. Название вкладки должно быть именем файла из списка. Если вкладка с определенным именем файла уже существует, то она не должна открывать новую вкладку, курсор должен указывать на эту страницу. Как получить название вкладки.

private void lstErrorList_MouseDoubleClick(object sender, MouseEventArgs e)
        {
            ArrayList errorType = new ArrayList();
            if (lstErrorList.Items.Count > 0)
            {
                string error = lstErrorList.SelectedItem.ToString();



                {

                    int result = error.LastIndexOf('\\');
                    string filename = error.Substring(result + 1, error.Length - (result + 1));
                    int pagecount;
                    TabPage tp = new TabPage();
                    pagecount = this.tabControl1.TabPages.Count;
                    for(int tbpagecount=0;tbpagecount<pagecount;tbpagecount++)
                    {
                        pagelist.Add(this.tabControl1.TabPages.ToString());
                    }
                    if (pagelist.Contains(filename))
                    {


                    }
                    else
                    {
                        this.tabControl1.TabPages.Insert(pagecount, filename);
                        pagecount++;
                    }

                    if (fileNamesList.Count == 0)
                        fileNamesList.Add(filename);
                    else
                    {
                        if (fileNamesList.Contains(filename))
                        {
                            //fileNamesList.Add("");
                        }
                        else
                        {
                            fileNamesList.Add(filename);

                        }

                    }
                }  

Ответы [ 3 ]

9 голосов
/ 28 февраля 2012
        bool found = false;
        foreach (TabPage tab in tabControl1.TabPages) {
            if (filename.Equals(tab.Name)) {
                tabControl1.SelectedTab = tab;
                found = true;
            }
        }
        if( ! found)
                tabControl1.TabPages.Add(filename,filename);
6 голосов
/ 04 августа 2015
        var tabPage = tabControl1.TabPages[filename];
        if (tabPage != null)
        {
            tabControl1.SelectedTab = tabPage;
        }
        else
        {
            tabControl1.TabPages.Add(filename, filename);
        }
2 голосов
/ 28 февраля 2012

Как насчет этого?

        string fileName = "";
        bool isPresent = false;

        for (int i = 0; i < tabControl1.TabPages.Count; i++)
        {
            if (tabControl1.TabPages[i].Name == filename)
            {
                isPresent = true;
                break;
            }
        }

        if (isPresent)
        {
                tabControl1.TabPages.Add(filename);
        }
        else
        {
                tabControl1.SelectTab(tab.TabIndex);
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...