none
Wie kann ich ein Control kopieren? RRS feed

  • 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

     

    Samstag, 13. August 2011 12:49

Antworten

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

    Samstag, 13. August 2011 18:47
  • 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

    Montag, 15. August 2011 08:44
  • 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

    Montag, 15. August 2011 09:15
  • 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
    Montag, 15. August 2011 09:42
  • Oh, ja, das hört sich gut an.

    Danke, Thorsten, für diesen Hinweis

     

    Grüße

    Toni

    Montag, 15. August 2011 10:21
  • Danke Elmar,

    Vielleicht ist bei meiner ersten Frage das Problem mit dem DataGridView etwas untergegangen.

    Ich danke dir jedenfalls für deine Unterstützung.

     

    Grüße Toni

    Montag, 15. August 2011 10:26
  • 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 Forms

    Gruß Elmar

    Montag, 15. August 2011 12:03
  • Hallo Anton Reinthaler,

    Ich gehe davon aus, dass die Antwort Dir weitergeholfen hat.
    Solltest Du noch "Rückfragen" dazu haben, so gib uns bitte Bescheid.

    Grüße,
    Robert

    Freitag, 19. August 2011 11:35