DataGridView에서 여러 셀을 편집하는 데 도움이 필요합니다
-
12-09-2019 - |
문제
DataGridView에서 여러 셀 편집을 지원하려고합니다. 편집이 완료 될 때 내용을 다른 셀에 올바르게 복사하기 때문에 거의 완료되었습니다. 내가 지금하고있는 것은 첫 번째 키를 캡처하는 것입니다.
하나의 셀을 편집 할 때 editonkeystrokeorf2를 사용하여 잘 작동합니다. 그러나 여러 셀이 선택되면 키 다운 이벤트를 캡처하고 수동으로 Beginedit을 호출합니다. 그러나 그렇게하면 누적 된 키가 편집에 포함되지 않습니다.
첫 번째 키를 내 셀에 누르는 방법은 무엇입니까?
해결책
나는 몇 가지 추가 실험을했고이를 수행 할 수있는 방법을 찾았습니다. 약간 조잡하지만 작동합니다.
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);
}
}
CellBeginedIT 이벤트에 등록함으로써 거기에 값을 뿌릴 수 있습니다. 나는 _keyValue의 다른 처리를 수행하여 숫자를 만들지 만 나머지 부분과 관련이 없습니다.
다른 팁
키를 처리하지 않은 것으로 표시하는 것은 충분할 수 있습니다.
private void dataGridView_KeyDown(Object sender, KeyEventArgs keyEventArgs)
{
keyEventArgs.Handled = false;
}
제휴하지 않습니다 StackOverflow