Avatar billede simsen Mester
22. juni 2006 - 06:46 Der er 8 kommentarer og
1 løsning

Datagrid værdier på 2 forms

Hejsa alle

Jeg håber, I kan hjælpe mig, jeg er nemlig ved at blive lidt desperat....

Jeg har 2 forms. På form1 har jeg et datagridview, der er bundet op med et DataSet, BindingSource og en TableAdapter. Derudover har jeg en knap, jeg kalder btnRet.

På form2 har jeg så nogle text felter og en knap, jeg kalder btnGem.

Jeg vil have det sådan, at når jeg trykker på btnRet, skal den åbne form2 (som jeg godt ved, hvordan man gør), tage data med fra den, jeg står på i datagrid'et over til de respektive tekst felter i form2.

Når jeg trykker på btnGem, skal den gemme ændringerne jeg har lavet, lukke form2 og opdatere datagrid'et på form1.

Nogen der kan linke/give mig et eksempel på, hvordan det gøres. Og jeg må hellere sige, det skal være på begynder niveau, da jeg ikke aner, hvordan man laver den hulens reference, jeg har læst mig til de sidste 3 dages eftersøgning herinde og på google, jeg skal bruge.

mvh
simsen :-)
Avatar billede nielle Nybegynder
22. juni 2006 - 19:20 #1
Hvorfor vil du have en form nr. 2 i spil? Hvorfor ikke simpelthen redigere data direkte i dit DataGridView?
Avatar billede simsen Mester
22. juni 2006 - 21:55 #2
nielle

Fordi jeg har for mange felter, og også et note felt, som jeg ønsker brugeren skal kunne se mere af, end bare én lang linie.

mvh
simsen :-)
Avatar billede simsen Mester
22. juni 2006 - 22:15 #3
nielle

Jeg har fundet noget på nettet, men kan ikke få det til at fungere, med det jeg har Koden jeg har fundet ser ud som følgende:

// this is a method handler on your main form
private void dataGrid1_DoubleClick(object sender, System.EventArgs e)
{
frmEdit f = new frmEdit();
f.Owner =this;
int rowid=dataGrid1.CurrentRowIndex;
int diaryid=(int)dataGrid1[rowid,4];
f.currentRow =diaryid;
f.Show();
}
// your Other form---
Form1 MyDaddy=(Form1)this.Owner;
// call a public method torefresh the DataGrid in the calling form
MyDaddy.RefreshGrid();

// put the value of a public field from Form1 into a textbox on this form
myTextBox1.Text=MyDaddy.ValueForTextBox1


Min kode i min form1 ser ud som følgende:
        private void dgrKunder_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
        {
            RetKunde frmRetKunde = new RetKunde();
            frmRetKunde.Owner = this;
            int rowid = dgrKunder.CurrentRowIndex;
            int diaryid = (int)dgrKunder[rowid, 4];
            frmRetKunde.Show();
            this.Visible = false;
        }

Punkt 1: (jeg bruger VS2005) Kan den ikke finde noget i autofuldførelsen, der hedder CurrentRowIndex (kun noget der hedder CurrentRow).

Når jeg alligevel skriver CurrentRowIndex - får jeg følgende 2 fejl:
Fejl 1: Error    1    'System.Windows.Forms.DataGridView' does not contain a definition for 'CurrentRowIndex'    C:\ANSI\ANSI\Faktureringssystem.cs    49    35    ANSI
*******Som er følgende linie i koden: int rowid = dgrKunder.CurrentRowIndex;********

Fejl 2: Error    2    Cannot convert type 'System.Windows.Forms.DataGridViewCell' to 'int'    C:\ANSI\ANSI\Faktureringssystem.cs    50    27    ANSI
*********Som er følgende linie i koden: int diaryid = (int)dgrKunder[rowid, 4];****

Nu er mine spørgsmål:
* Hvorfor kan jeg ikke bruge CurrentRowIndex?
* Hvad betyder det 4 tal?

mvh
en meget håbefuld

simsen :-)
Avatar billede nielle Nybegynder
22. juni 2006 - 22:32 #4
Er det et DataGrid ellerc et DataGridView du bruger?

Den viste kode er for et DataGrid, men du startede med at skrive at det var et DataGridView du bruger.
Avatar billede nielle Nybegynder
22. juni 2006 - 22:38 #5
4-tallet betyder at du skal have fat på indholdet af celle n.r 4 (og husk at en række starter med 0, 1, 2 ...)
Avatar billede simsen Mester
23. juni 2006 - 06:18 #6
nielle

Den jeg drag and drop'er over hedder DataGridView. Jeg kan slet ikke finde noget i windows forms, der hedder DataGrid.

Er det så cellerne fra databasen eller er det for DataGridView'et den tæller? Og hvis det er for DataGridView'et, tæller den så den grå kasse yderst til venstre med? For så er det enten 0 eller 1, jeg skal have fat i, idet det er der min id er.

Ville det hjælpe dig, til at hjælpe mig, hvis jeg zippede filerne ned, og du kan hente det et sted?

mvh
simsen
Avatar billede nielle Nybegynder
23. juni 2006 - 06:56 #7
Ok, du bruger altså et DataGridView men dette betyder så naturligt nok at du ikke kan bruge kodeekesmpler udviklet for et DataGrid. Når du søger på kodeeksempler er det altså rimeligt vigtigt at skeldne.

DataGrid var den dims man bruget i VS2003, og den er blevet erstattet af DataGridView i VS2005. DataGrid er stadig tilgængelig i VS2005, men den er gemt rigtig godt af vejen - så godt at man ikke kan indsætte den via drag'n'drop, men må til at kode.
Avatar billede simsen Mester
04. juli 2006 - 16:08 #8
lukker :-(
Avatar billede nielle Nybegynder
04. juli 2006 - 17:34 #9
Tja, det var nu mig som ventede på en eller anden reaktion fra dig. :^|
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