Laden...

Wie kann ich in ein TabControl dynamisch ein Grid hinzuzufügen?

Erstellt von Olii vor 6 Jahren Letzter Beitrag vor 6 Jahren 1.788 Views
O
Olii Themenstarter:in
76 Beiträge seit 2017
vor 6 Jahren
Wie kann ich in ein TabControl dynamisch ein Grid hinzuzufügen?

Hallo, ich versuche gerade in so etwas wie ein TabControl dynamscih Grid hinzuzufügen.

Ich benutze C1 Objekte von ComponantOne aber die Mechanik sollte die gleiche sein. Es gibt viele Beispiele aber irgendwie bekomme ich keine Daten angezeigt zur Laufzeit. Das Grid ist da aber keine Daten. Ich weiß nicht weiter...


public void addTapsDockingTab(Dataset ds)
{

for (int i = 0; i <= ds.Tables.count - 1; i++)
{

C1DockingTabPage tpTapPage = newDockingTabPage() {Name (ds.Tables[i]).TableName, Text = ds.Tables[i].Tablename};

dtpMain.tabPages.add(tpTapPage); //das ist mein Objekt wo die TapPages erstellt werden 

C1TrueDBGrid newGrid = new C1TrueDBGrid();
newGrid.Datasource = ds.Tables[i];

dtpMain.TabPages[i].Controls.Add(newGrid);

}

}
5.657 Beiträge seit 2006
vor 6 Jahren

Hi Olii,

irgendwie bekomme ich keine Daten angezeigt

Kannst du etwas genauer beschreiben, was da nicht funktioniert? Der Code sieht für mich nicht so aus, als daß er kompilieren oder gar funktionieren könnte.

Ist das WinForms oder WPF?

Ansonsten empfehle ich DataBinding für solche Aufgaben.

Weeks of programming can save you hours of planning

O
Olii Themenstarter:in
76 Beiträge seit 2017
vor 6 Jahren

Der Code ist kompiliert und zumindest für mich macht er Sinn. Ich habe es auch mal mit einem Beispiel verglichen.

Das Problem ist Momentan das ich nur den Rahmen des Grids angezeigt bekomme.

Also ich erstelle mir dynamisch Tabpages. In diese packe ich dynamisch erstellte Grids rein. Diesen weiße ich eine Datasource zu und füge Sie mit add der entsprechenden TapPage zu. Das funktioniert auch fast. Nun ist es so das wenn ich mein Program starte alle Tabpages sehe (was richtig ist) und auch die Grids sehe nur als wenn keine Datasource da wäre. Also wenn man z.b. Eine gridview einfügt aber keine spalten etc. Hinzufügt. Dann bekommt man ja auch nur einen schwarzen Rahmen zu sehen. Den sehe ich.

Das seltsame ist das wenn ich aber die Grids auslese mit einer anderen funktion, ich alle Daten darin wieder finde. Es ist irgendwie so als ob diese nur nicjt visible sind. (hab versucht schon alles auf visible zu setzen). Also wenn ich mir quasi eine einfache schleife baue und damit nochmal das Grid durchgehe, liefert er mir alles zurück was ich ihm beim erstellen zugewiesen habe. Ich verstehe aber nicht wieso ich zur Laufzeit nichts sehe.

Zusammen gefasst: ich sehe nur einen schwarzen Rahmen. Guckte ich aber in das Grid quasi rein nach der erstellung befinden sich alle Daten in der Datasource, aber es wird mir trotzdem nichts angezeigt zur laufzeit.

Ich benutze Windows Forma. Mit Databinding hab ich es versucht aber kommt das gleiche ergebnis raus 😐

5.657 Beiträge seit 2006
vor 6 Jahren

Ich kenne die Steuerelemente von ComponentOne nicht, aber es müßte dort eine Anleitung für die Erstellung der Grids geben.

Weeks of programming can save you hours of planning

1.029 Beiträge seit 2010
vor 6 Jahren

Hi,

da gibt es viele denkbare Ursachen - aber grundlegend würde ich vermuten, dass die Grids vll 1x1 Pixel groß sind im Standard.

Im Zweifel schaust du dir am besten an, was der Designer erstellt, wenn du ein solches Grid hinzufügst - und ahmst entsprechend nach...

LG

87 Beiträge seit 2016
vor 6 Jahren

Hallo,

hast du einmal die Eigenschaft AutoGenerateColumns geprüft.

glandorf