22. juni 2006 - 06:46Der 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.
I dette særtema om aspekter af AI ser vi på skiftet fra sprogmodeller til AI-agenter, og hvordan virksomheder kan navigere i spændet mellem teknologisk hastighed og behovet for menneskelig kontrol.
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?
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?
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.
Tja, det var nu mig som ventede på en eller anden reaktion fra dig. :^|
Synes godt om
Ny brugerNybegynder
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.