[C#] value DataGridView niet te wijzigen

Pagina: 1
Acties:

  • Sandermvdb
  • Registratie: December 2000
  • Laatst online: 16-01 19:52

Sandermvdb

Regret is a wasted emotion...

Topicstarter
Bij een DataGridView kan je de waarden wijzigen als de cursor op een bepaalde cell staat. Om de 1 of andere rede springt bij mij de cell echter altijd terug naar de originele waarde. Ook lukt het mij niet om bij een 'cellEndEdit' event de ingetypte waarde te achterhalen. Kan iemand mij aub helpen?

De DataGridView heeft een ArrayList als source.

  • Alex
  • Registratie: Juli 2001
  • Laatst online: 08-02 12:48
Kun je wat meer informatie geven? Hoe bind je hem? Doe je custom acties? Hoe probeer je 'm te wijzigen?

Deze post is bestemd voor hen die een tegenwoordige tijd kunnen onderscheiden van een toekomstige halfvoorwaardelijke bepaalde subinverte plagiale aanvoegend intentioneel verleden tijd.
- Giphart


  • Sandermvdb
  • Registratie: December 2000
  • Laatst online: 16-01 19:52

Sandermvdb

Regret is a wasted emotion...

Topicstarter
Alex schreef op dinsdag 24 oktober 2006 @ 19:08:
Kun je wat meer informatie geven? Hoe bind je hem? Doe je custom acties? Hoe probeer je 'm te wijzigen?
Het binden doe ik als volgt:
ArrayList list = new ArrayList();
for (int i = 0; i < 9; i++)
{
Row r = new Row(1,2,3,4,5,6,7,8,9);
list.Add(r);
}
dataGridView1.DataSource = list;


Wat bedoel je met custom acties?

Ik wijzig een veld door op een cel te klikken en dan een getal in te voeren. Dan zie je dat getal in het veld verschijnen maar zodra ik het veld verlaat staat de oorspronkelijke waarde er weer. Het lukt me niet eens om de waarde die ik heb ingevoerd terug te vinden (mbv dataGridView1.currentCell.value bv)

  • Mastermind
  • Registratie: Februari 2000
  • Laatst online: 17-01 10:57
Dat wil toch niet zomaar met een array? Je moet ook een DataTable gebruiken.

C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace WindowsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            CreateRowsWithItemArray();
        }



        private void CreateRowsWithItemArray()
        {
            // Eerst maken we een DataTable
            DataTable dt = MakeTableWithAutoIncrement();
            DataRow relation;
            // Dan declareren we de array variabele.
            object[] rowArray = new object[2];
            // We maken 10 nieuwe rijen en voegen deze toe aan de DataRowCollection.
            for (int i = 0; i < 10; i++)
            {
                rowArray[0] = null;
                rowArray[1] = "item " + i;
                relation = dt.NewRow();
                // De ItemArray wordt de RowArray
                relation.ItemArray = rowArray;
                dt.Rows.Add(relation);
            }
            dataGridView1.DataSource = dt;
        }



        private DataTable MakeTableWithAutoIncrement()
        {
            // Maak een tabel met een AutoIncrement column (Primary Key)
            DataTable table = new DataTable("table");
            DataColumn idColumn = new DataColumn("id",
                Type.GetType("System.Int32"));
            idColumn.AutoIncrement = true;
            idColumn.AutoIncrementSeed = 10;
            table.Columns.Add(idColumn);

            DataColumn firstNameColumn = new DataColumn("Item",
                Type.GetType("System.String"));
            table.Columns.Add(firstNameColumn);
            return table;
        }



        private void PrintTable(DataTable table)
        {
            // Toon de tabel in de console
            foreach (DataRow row in table.Rows)
            {
                foreach (DataColumn column in table.Columns)
                {
                    Console.WriteLine(row[column]);
                }
            }

        }

        private void btnToonInhoud_Click(object sender, EventArgs e)
        {
            // Op button Toon Inhoud geklikt
            DataTable dt = dataGridView1.DataSource as DataTable;
            if (dt != null)
                PrintTable(dt);
        }

    }
}

  • Sandermvdb
  • Registratie: December 2000
  • Laatst online: 16-01 19:52

Sandermvdb

Regret is a wasted emotion...

Topicstarter
Mastermind schreef op dinsdag 24 oktober 2006 @ 23:35:
Dat wil toch niet zomaar met een array? Je moet ook een DataTable gebruiken.
Dank u! :)