Avatar billede cwmb Nybegynder
21. august 2008 - 21:00 Der er 9 kommentarer

opdatering af combobox fra anden form

Jeg har min main form Form1 der indeholder en combobox (Denne combobox henter sin info fra en db) , så har jeg en anden form, hvorfra jeg add'er nye rows til den table, som combobxen henter sin info fra.

Mit problem består i at når jeg har tilføjet en ny row til den pågældende table fra Form2, så skal comboboxen på Form1 opdatere/refreshe sig, så den henter det ny-indsattede info.

hvordan gør jeg lige det ?

Jeg troede jeg kunne bruge combobox.refresh() men den tegner vist bare boxen på ny.
Nogen der har en god ide ?
Avatar billede aaberg Nybegynder
22. august 2008 - 09:02 #1
Hvordan henter du data ind i din combobox?
Avatar billede aaberg Nybegynder
22. august 2008 - 09:05 #2
Hvis du selv har skrevet noget kode som henter data fra basen og opdaterer comboboxen, skal du køre dette kode hver gang der kommer ændringer.
Avatar billede cwmb Nybegynder
22. august 2008 - 10:16 #3
Jeg har oprettet den i VS, så har jeg bare binded den til en binding source, som er knyttet til en Tabel.

Koden i design filen ser således ud (hvis det hjælper):

            // comboBox_chipscollection
            //
            this.comboBox_chipscollection.DataSource = this.chipscollectioncategoryBindingSource;
            this.comboBox_chipscollection.DisplayMember = "chips_collection_name";

            // chipscollectioncategoryBindingSource
            //
            this.chipscollectioncategoryBindingSource.DataMember = "chips_collection_category";
            this.chipscollectioncategoryBindingSource.DataSource = this.pokerManagerDataSetBindingSource;
            //
            // pokerManagerDataSetBindingSource
            //
            this.pokerManagerDataSetBindingSource.DataSource = this.pokerManagerDataSet;
            this.pokerManagerDataSetBindingSource.Position = 0;
Avatar billede aaberg Nybegynder
22. august 2008 - 11:17 #4
Du har sikkert en TableAdapter som hedder chipscollectioncategoryTableAdapter. Prøv så at skriv:

this.chipscollectioncategoryTableAdapter.Fill(this.pokerManagerDataSet.chipscollectioncategory);

Ovenstående kode skal køres hver gang din combobox skal opdateres.
Avatar billede cwmb Nybegynder
22. august 2008 - 12:04 #5
Så langt var jeg egentlig også med..problemet er bare at min TableAdapter, Bindingsource og dataset ligger på Form1, men der hvor jeg skal opdatere fra ligger på Form2 (kalder vi den bare), og der kan jeg jo ikke få fat i min TableAdapter eller Dataset medmindre jeg instantiere et nyt objekt af de 2 ?!
Avatar billede cwmb Nybegynder
22. august 2008 - 12:50 #6
Jeg har prøvet at gøre det, at jeg fra form2 kalder en metode på form1:

        public void ReloadTableAdapter()
        {
            MessageBox.Show("reloaded");
            this.chips_collection_categoryTableAdapter.Fill(this.pokerManagerDataSet.chips_collection_category);
        }
som så skulle gøre det du anbefalede...men lige lidt hjælper det...der komme ikke nye data i min combobox
Avatar billede aaberg Nybegynder
22. august 2008 - 12:59 #7
I det din MessageBox popper op i ReloadTableAdapter() metoden, prøv at tjekke om dine data ligger i tabellen i databasen. Det kan måske have noget at gøre med rækkefølgen tingene bliver kørt.
Avatar billede cwmb Nybegynder
22. august 2008 - 16:27 #8
Det gør de ikke..har tjekket...det er som om at dataset'et er "det gamle" og ikke bliver opdateret.
Avatar billede cwmb Nybegynder
22. august 2008 - 16:28 #9
og Messagebox'en var blot til at teste, at metoden blev kaldt.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester