login  Naam:   Wachtwoord: 
Registreer je!
 Forum

dataGridView onclick gegevens

Offline kenzo - 19/01/2010 17:58
Avatar van kenzoPHP beginner Hallo

Ik heb een dataGridView met gegevens uit een database.

Als ik op een waarde klik wil ik graag een nieuw form aanmaken waar ik deze gegevens kan wijzigen.


Alleen heb ik bij de onclick geen gegevens over de waarde...

weet iemand hoe ik dit het beste kan doen?

Vriendelijk bedankt
Kenzo

5 antwoorden

Gesponsorde links
Offline cloudstrife - 19/01/2010 18:45
Avatar van cloudstrife PHP beginner Hoe stop je de gegevens in de datagridview? Via een bindingsource? Hoe zijn de gegevens samengesteld, dataset, collection,...

Als je een bindingsource gebruikt kan je via de bindingsource.current de gegevens van de huidige rij ophalen, als dit dan een object is doe je gewoon een directcast van de current naar het object en zo kan je aan al zijn properties.
Offline Abbas - 19/01/2010 20:08 (laatste wijziging 19/01/2010 23:56)
Avatar van Abbas Gouden medaille

Crew .NET
Zoals cloudstrife z'n logica zei, alleen is het een DataSource!  Volgende code maakt het misschien wat duidelijker:

Person.cs
  1. public enum Geslacht
  2. {
  3. Man,
  4. Vrouw
  5. }
  6.  
  7. public class Person
  8. {
  9. public String Naam { get; set; }
  10. public int Geboortejaar { get; set; }
  11. public Geslacht Geslacht { get; set; }
  12. }

MainForm
  1. //Load event
  2. List<Person> lstPerson = new List<Person>();
  3. lstPerson.Add(new Person { Naam = "titjes", Geboortejaar = 1985, Geslacht = Geslacht.Man });
  4. lstPerson.Add(new Person { Naam = "someGirl", Geboortejaar = 1989, Geslacht = Geslacht.Vrouw });
  5. gridPersons.DataSource = lstPerson;
  6.  
  7. //CellClick event van de DataGridView
  8. //Werkt beter dan het CellContentClick event
  9. if (!e.RowIndex.Equals(-1))
  10. {
  11. Person p = gridPersons.Rows[e.RowIndex].DataBoundItem as Person;
  12. frmEdit edit = new frmEdit();
  13. edit.personToEdit = p;
  14. edit.Show();
  15. }
  16. //Die if is nodig want als je op je HeaderCell klikt is de RowIndex -1
  17. //en krijg je een OutOfRangeException

EditForm
  1. //Volgende regel hoort gewoon binnen de class van je form
  2. public Person personToEdit;
  3.  
  4. //Load event
  5. txtNaam.Text = personToEdit.Naam;
  6. txtGebJaar.Text = personToEdit.Geboortejaar.ToString();
  7. txtGeslacht.Text = personToEdit.Geslacht.ToString();
Offline cloudstrife - 20/01/2010 07:45
Avatar van cloudstrife PHP beginner Idd, alleen is mijn datasource steeds een bindingsource en daar heb je dan een current om de huidige rij aan te duiden.
Offline Abbas - 20/01/2010 15:56
Avatar van Abbas Gouden medaille

Crew .NET
Mjah, het is te zien wat kenzo nodig heeft e! 
Offline kenzo - 23/01/2010 09:16
Avatar van kenzo PHP beginner Sorry heb nog geen tijd gehad om het te proberen.

Ik zal er volgende week weer mee beginnen.


Bedankt alvast voor de antwoorden.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.173s