Use function is same class and different class are not same effect

I create an application named WindowsFormsApp1 and I write code like this, I can create an unique tab page

namespace WindowsFormsApp1
{
     public partial class Form1 : DevExpress.XtraBars.Ribbon.RibbonForm
     {
         public Form1()
        {
             InitializeComponent();
         }
         
         private void addTab(XtraTabControl tabControl, string tabName, string tabText)
         {
 			int pageCount = tabControl.TabPages.Count;
             int index = 0;
             for(int i=0; i<pageCount; i++)
             {
                 if (tabControl.TabPages[i].Name == tabName)
                 {
                    index = i;
                     break;
                 }
             }

             // create new or selected tabpage
             if(index > 0)
             {
                 tabControl.SelectedTabPage = tabControl.TabPages[index];
             }
             else
             {
                 XtraTabPage newPage = new XtraTabPage();
                 newPage.Text = tabText;
                 newPage.Name = tabName;
                 tabControl.TabPages.Add(newPage);
                 pageCount = tabControl.TabPages.Count;
                 tabControl.SelectedTabPage = tabControl.TabPages[pageCount-1];
             }
 		}

         private void barButtonItem2_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
         {
 			addTab(xtraTabControl1, "Tab1", "Tab 1");
 		}
 	}
 }

but when I move addTab funtion to other class

 namespace WindowsFormsApp1.Classes
 {
     class XTabPage
     {
         // add tabpage to tabcontrol
         public void add(XtraTabControl tabControl, string tabName, string tabText)
         {
             XtraTabPage page = this.findTabPageByName(tabControl, tabName);
             // create new or selected tabpage
             if (page != null)
             {
                 tabControl.SelectedTabPage = page;
             }
             else
             {
                 XtraTabPage newPage = new XtraTabPage();
                 newPage.Text = tabText;
                 newPage.Name = tabName;
                 tabControl.TabPages.Add(newPage);
                 int pageCount = tabControl.TabPages.Count;
                 tabControl.SelectedTabPage = tabControl.TabPages[pageCount - 1];
            }
         }

         // find tabpage by name
         public XtraTabPage findTabPageByName(XtraTabControl tabControl, string tabName)
        {
             XtraTabPage page = (XtraTabPage)(tabControl.TabPages.Where(p => p.Text == tabName).FirstOrDefault());
             return page;
         }
     }
 }
 and import it to Form1
 using WindowsFormsApp1.Classes;
 namespace WindowsFormsApp1
 {
     public partial class Form1 : DevExpress.XtraBars.Ribbon.RibbonForm
     {
        public Form1()
         {
             InitializeComponent();
         }

         private void barButtonItem2_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
         {
 			XTabPage xtp = new XTabPage();
 			xtp.add(xtraTabControl1, "Tab1", "Tab 1");
 		}
 	}
 }

But I can create ifinite tab page named Tab1. What is different?

This topic was automatically closed 91 days after the last reply. New replies are no longer allowed.