2009-04-06 10 views
1
TabPage newpage = new TabPage(); 
Tabs.TabPages.Add(newpage); 
newpage.Controls.Add(this.tableLayoutPanel41); 
newpage.Location = new System.Drawing.Point(4, 26); 
newpage.Name = "AddMaintAgreement" + offset; 
newpage.Size = new System.Drawing.Size(736, 523); 
newpage.TabIndex = 10; 
newpage.Text = "Add Maintenance Agreement"; 
newpage.UseVisualStyleBackColor = true; 
offset++; 

Fondamentalement, c'est ce que j'ai pour le moment, j'ai ajouté le décalage là parce que je pensais que cela pourrait affecter mon problème.C# faire un onglet, ajouter des contrôles à l'onglet, puis avoir plusieurs onglets de ce type

Fondamentalement, ce code fonctionne bien pour ajouter un onglet "addmaintagreement". Après cela, seul le dernier onglet a des contrôles sur celui-ci!

Fondamentalement, je suis perplexe. Toute aide serait appréciée. Merci.

Répondre

0

Les contrôles ne peuvent être parentés qu'avec un seul contrôle, mais il semble que vous essayez de créer un parent tableLayoutPanel41 dans chaque instance TabPage. Vous devez créer de nouvelles copies des contrôles pour chaque instance de l'onglet. Il existe plusieurs façons de résoudre ce problème.

  1. Créez par programme la page de votre onglet et son contenu plusieurs fois.
  2. Faites en sorte que le contenu de votre TabPage soit implémenté en tant que contrôle utilisateur que vous remplissez à quai sur une page à onglet. Puis recréer un de ceux pour chaque page dupliquer votre besoin.
  3. Créez une classe dérivée de TabPage qui implémente votre page à onglet et crée de nouvelles instances pour chaque utilisation.
1

Dérivez de TabPage et ajoutez les contrôles que vous souhaitez dans cette classe dérivée. Ensuite, utilisez votre classe dérivée au lieu de TabPage.

2

Je pense que court exemple devrait rester ici:

 TextBox tmpLog = new TextBox(); // create new control of textbox type 
     tmpLog.Text = "some text here"; 

     TabPage tb = new TabPage("my brand new tab"); //create tab 
     tabControl.TabPages.Add(tb); // add tab to existed TabControl 
     tb.Controls.Add(tmpLog); // add textBox to new tab 

     tabControl.SelectedTab = tb;  // activate tab