Beste tweakeraars,
Ik heb een On-Screen NumPad geschreven. Bij een textBox_Enter event sla ik de textbox op zodat het numpad weet naar welke textbox de cijfers gestuurd moeten worden. Dit werkt allemaal op textboxen. Maar nu heb ik een datagridview waar het ook in moet werken. Op het CellValueChanged event zit een methode die alles gelijk wegschrijft naar de database en die ook de datasource van het DataGrid opnieuw set.
Wanneer ik op de cel klik werkt het gewoon, maar wanneer ik daarna weer een knop van het numpad wil gebruiken gebeurt er niks en krijg ik de volgende Error: "Provided Cell does not belong to this datagrid". Ik ben beetje radeloos met wat ik nog kan doen. Enige wat ik nog kan bedenken, is wanneer ik de tabel weer vul, dezelfde (nieuwe) cell ophalen aan de hand van de posities in het datagrid. En wanneer dit gebeurd, kan ik dan gewoon iedere keer me numpad gebruiken zonder opnieuw de cell te Enteren?
Ik heb een On-Screen NumPad geschreven. Bij een textBox_Enter event sla ik de textbox op zodat het numpad weet naar welke textbox de cijfers gestuurd moeten worden. Dit werkt allemaal op textboxen. Maar nu heb ik een datagridview waar het ook in moet werken. Op het CellValueChanged event zit een methode die alles gelijk wegschrijft naar de database en die ook de datasource van het DataGrid opnieuw set.
C#:
1
2
3
4
5
6
7
8
9
10
11
| private void EditDefectDataGrid_CellEnter(object sender, DataGridViewCellEventArgs e) { DataGridView dgv = sender as DataGridView; if (dgv.CurrentCell.RowIndex > 0 && dgv.CurrentCell.ColumnIndex > 0) { if (dgv.SelectedCells.Count > 0) { if (dgv.SelectedCells[0].ColumnIndex > 0 && dgv.SelectedCells[0].RowIndex > 0) { dgv.CurrentCell = dgv.SelectedCells[0]; CurrentCell = dgv.SelectedCells[0]; } } } } |
Wanneer ik op de cel klik werkt het gewoon, maar wanneer ik daarna weer een knop van het numpad wil gebruiken gebeurt er niks en krijg ik de volgende Error: "Provided Cell does not belong to this datagrid". Ik ben beetje radeloos met wat ik nog kan doen. Enige wat ik nog kan bedenken, is wanneer ik de tabel weer vul, dezelfde (nieuwe) cell ophalen aan de hand van de posities in het datagrid. En wanneer dit gebeurd, kan ik dan gewoon iedere keer me numpad gebruiken zonder opnieuw de cell te Enteren?
C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| private void TouchPad(object sender, EventArgs e) { Button btn = (Button)sender; if (CurrentCell != null) { DataGridViewCell cell = (DataGridViewCell)CurrentCell; EditDefectDataGrid.BeginEdit(true); if (cell.Value != null) { if (cell.Value.ToString().Length < 3) { cell.Value = cell.Value + btn.Text.ToLower(); EditDefectDataGrid.CurrentCell = cell; } else { cell.Value = cell.Value + btn.Text.ToLower(); EditDefectDataGrid.CurrentCell = cell; } } } } |