Benutzer mit den meisten Antworten
Wie kann ich ein Control kopieren?

Frage
-
Hallo ans Forum
ich hab eine ComboBox, die ich mit Daten aus einer Access-Tabelle fülle (Aber ohne Combobox.Datasource=)
In der selben Form1 brauch ich aber die genau gleiche Combobox noch einmal, mit den selben Daten.
Muss ich da wieder auf die Access-Tabelle zugreifen und in einer Schleife die Daten holen oder geht das nicht einfacher, indem ich die Daten der ersten Combobox irgendwie in die zweite kopiere?
Die gleiche Frage hab ich auch bezüglich einer DataGridView.
Liebe Grüße
Toni
Antworten
-
Hallo Toni,
Du musst schon zwei ComboBoxen erstellen, schließlich kann jede nur an einer Stelle zugleich erscheinen.
Die kannst Du an die gleiche Datenquelle binden, in dem Du dafür zwei BindingSource verwendet,
denen Du einmal abgerufene Quelle (DataSet, DataTable) übergibst.In Gibt es so etwas wie eine Textbox mit Complex Binding ging es zwar um ComboBoxen in einem DataGridView,
aber das Prinzip ist das gleiche.Gruß Elmar
- Als Antwort vorgeschlagen Robert Breitenhofer Dienstag, 16. August 2011 16:34
- Als Antwort markiert Robert Breitenhofer Freitag, 19. August 2011 11:35
Alle Antworten
-
Hallo Toni,
Du musst schon zwei ComboBoxen erstellen, schließlich kann jede nur an einer Stelle zugleich erscheinen.
Die kannst Du an die gleiche Datenquelle binden, in dem Du dafür zwei BindingSource verwendet,
denen Du einmal abgerufene Quelle (DataSet, DataTable) übergibst.In Gibt es so etwas wie eine Textbox mit Complex Binding ging es zwar um ComboBoxen in einem DataGridView,
aber das Prinzip ist das gleiche.Gruß Elmar
- Als Antwort vorgeschlagen Robert Breitenhofer Dienstag, 16. August 2011 16:34
- Als Antwort markiert Robert Breitenhofer Freitag, 19. August 2011 11:35
-
Danke für deine Antwort.
Bei den Comboboxen wird das sicher funktionieren, doch mit meinem DataGridView verhält es sich anders. Hier kann ich kein Abbild der Tabelle brauchen. Welche Tabellen-Daten in welche DGV-Zelle geschrieben werden, muss ich erst kreuz und quer in einer Schleife zusammen suchen. Das heißt, ich kann keine zusammenhängende Tabellen-Row in das DGV-Row schreiben. Somit, denke ich, gibt es auch keine DataSource. Oder doch? Keine Ahnung. Jedenfalls ist das DGV zu groß, um es als Ganzes am Bildschirm zeigen zu können und daher gibt es daneben ein miniaturisiertes DGV, das natürlich auch befüllt werden muss.
Also zweimal die gleiche Schleife, oder in einer Schleife gleich beide DGV füllen. Das ist aber die doppelte Zeit.
Meine Frage: Kann ich die zweite Schleife irgendwie einsparen indem ich z.B. dem kleinen DGV die Daten des großen DGV zuweise?
Liebe Grüße
Toni
-
Hallo Toni,
so ganz verstehe ich jetzt zwar nicht, wie Du von der ComboBox auf das DataGridView kommst...
Aber auch zwei DataGridViews können sich auf gleiche Weise die Datenquelle teilen.
Wenn Du unterschiedliche Spalten und / oder Formate anzeigen willst, so konfiguiere das Spaltenlayout entsprechend.
Vieles davon wird beschrieben in: DataGridView-Steuerelement (Windows Forms)Die Zellen des DataGridViews holen sich dann die Daten entsprechend.
Ein direktes Arbeiten mit den Zellen sollte man im gebundenen Modus generell vermeiden.Gruß Elmar
-
Hallo Toni,
ergänzend zu Elmar vielleicht noch der Hinweis, dass Du eine DataTable auch selber erstellen und befüllen kannst. Damit kannst Du diese dann auch als Datenquelle für diverse Steuerelemente verwenden. Das muss keine 1:1 Abbildung einer Tabelle einer Datenbank sein.
Thorsten Dörfler
Microsoft MVP Visual Basic
vb-faq.de -
Hallo Toni,
schau Dir mal an DataSets, DataTables und DataViews (ADO.NET)
da gibt es einiges zu lesen... und dann wäre da noch:
Datenbindung in Windows FormsGruß Elmar