Vous avez besoin d'aide pour l'édition de plusieurs cellules dans un datagridview

StackOverflow https://stackoverflow.com/questions/768851

  •  12-09-2019
  •  | 
  •  

Question

Je suis en train de soutenir l'édition de plusieurs cellules sur un datagridview. Je suis presque complet, comme correctement copie le contenu d'autres cellules lorsque l'édition est fait. Qu'est-ce que je travaille est maintenant capturer la première touche enfoncée.

Quand je suis l'édition une seule cellule, en utilisant fonctionne EditOnKeystrokeOrF2 bien. Cependant, lorsque plusieurs cellules sont sélectionnées, je capturant l'événement KeyDown et appeler manuellement BeginEdit. Quand je fais cela, cependant, la touche pressée ne figure pas dans l'édition.

Comment puis-je obtenir cette première touche enfoncée dans ma cellule?

Était-ce utile?

La solution

Je l'ai fait quelques expériences supplémentaires et a trouvé un moyen pour y arriver. Il est un peu bâclé, mais cela fonctionne.

private int _keyValue;
private Boolean _checkKeyValue = false;

private void Grid1_CellBeginEdit(object sender, DataGridViewCellCancelEventArgs e)
{
    DataGridViewCell cell = Grid1.Rows[e.RowIndex].Cells[e.ColumnIndex];

    if (_checkKeyValue)
    {
        _checkKeyValue = false;

        if (value != -1)
        {
            cell.Value = _keyValue;
        }
    }   
}

private void Grid1_KeyDown(object sender, KeyEventArgs e)
{
    if (Grid1.SelectedCells.Count > 1)
        {
            _checkKeyValue = true;
            _keyValue = (int)e.KeyValue;
            Grid1.BeginEdit(false);
        }
}

En vous inscrivant à l'événement CellBeginEdit, je peux plop la valeur là-dedans. Je fais un autre traitement de la _keyValue pour en faire un certain nombre, mais ce n'est pas pertinent pour le reste de cela.

Autres conseils

Peut être il suffit de marquer la clé n'a pas été traitée.

private void dataGridView_KeyDown(Object sender, KeyEventArgs keyEventArgs)
{
   keyEventArgs.Handled = false;
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top