Autor Beitrag
Florian Wolf
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 20


C# (VS 2008)
BeitragVerfasst: Do 29.04.10 08:58 
Hallo,

ich habe ein Problem. Ich muss zur Laufzeit eine oder mehrere TabPages erzeugen. Auf diesen TabPages muss ich einen UserControl platzieren auf dem sich einige TextBoxen befinden. Auf meinem MainForm (auf dem ich die TabPages hinzufüge) habe ich einen Button, wenn ich diesen anklicke muss ich nacheinander die Inhalte der TextBoxen aller erzeugten TabPages auslesen.

Die TabPages habe ich wie folgt erzeugt, wenn ich in einer ListView einen Doppelklick mache:

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
int iIndex;
string strAuswahl;

try
{
  iIndex = listView1.SelectedIndices[0];
  strAuswahl = listView1.Items[iIndex].Text.ToString();
  TabPage objTabPage = new TabPage(strAuswahl);
  tabControl1.TabPages.Add(objTabPage);
  csUnterstueckliste modulUnterstueckliste = new csUnterstueckliste();
  objTabPage.Controls.Add(modulUnterstueckliste);
}
catch
{

}


Jetzt habe ich meine Tabs mit den UserControls. Nur habe ich leider keine Ahnung wie ich an den Inhalt der TextBoxen auf den UserControls kommen soll.

Ich hoffe mein Problem ist verständlich und es kann mir jemand helfen.
danielf
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1012
Erhaltene Danke: 24

Windows XP
C#, Visual Studio
BeitragVerfasst: Do 29.04.10 10:42 
Hallo,

auf den Inhalt von den TextBoxen der UC kannst du nur zugreifen, wenn du diese sichtbar machst. D.h. mit Hilfe einer Methode/Property oder dem Modifier zu verändern. Das ist aber sehr ungeschickt, falls du später mal keine TextBox sondern ein anderes Control verwenden willst. Du willst ja eigentlich auch nicht auf die TextBox, sondern auf den Text/die Daten die sich darin befinden. Deshalb mach eine Methode die dir die gewünschten Daten in der gewünschten Form zur Verfügung stellt.

Später musst du dann über alle TabPagen gehen und dir das csUnterstueckliste (Bitte schau dir mal die .NET Namenskonvention an) UC holen (TabContainer.Pages[i].Controls[0]) und diese zu deiner csUnterstueckliste Casten um dann auf das Property/die Methode zuzugreifen.

Gruß
Florian Wolf Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 20


C# (VS 2008)
BeitragVerfasst: Do 29.04.10 11:18 
Vielen Dank damit hat es funktioniert.

ausblenden C#-Quelltext
1:
2:
3:
int iIndex;
iIndex = tabControl1.SelectedIndex;
csUnterstueckliste test = (csUnterstueckliste)tabControl1.TabPages[iIndex].Controls[0];


So komme ich an alle Elemente meiner UserControl.

Ich werde mir die Namenskonventionen noch mal anschauen.