개발/C#

[팁] C# 데이터그리드뷰 엔터키 입력시 다음행 이동 금지

FA1976 2018. 1. 25. 09:46
반응형

Key_Down 이벤트에 아래와 같이 코드를 추가해주면 엔터키를 쳤을 때 다음 행으로 이동이 안된다.

구글에서 c# datagridview cell enter event 로 검색하면 관련 게시글들이 나온다.


private void dataGridView1_KeyDown(object sender, KeyEventArgs e)
{
    if (e.KeyData == Keys.Enter)
    {
        int column = dataGridView1.CurrentCell.ColumnIndex;
        int row = dataGridView1.CurrentCell.RowIndex;
        dataGridView1.CurrentCell = dataGridView1[column, row];
        e.Handled = true;  <---- 반드시 해줘야함 안그럼 작동을 안함. 이거때문에 얼마나 고생을 ㅠ.
    }
}


엔터키를 치면 행으로 이동하지 않고 칼럼으로 이동하고 마지막 칼럼에서는 다음행의 첫번째 칼럼으로 이동하게 하는 코드

private void dataGridView1_KeyDown(object sender, KeyEventArgs e)
{
    if (e.KeyData == Keys.Enter)
    {
        e.SuppressKeyPress = true;
        int column = dataGridView1.CurrentCell.ColumnIndex;
        int row = dataGridView1.CurrentCell.RowIndex;
        if (column == dataGridView1.Columns.Count -1)
        {
            dataGridView1.CurrentCell = dataGridView1[0, row + 1];
        }
        else
        {
            dataGridView1.CurrentCell = dataGridView1[column + 1, row];
        }
    }
}



출처: http://link2me.tistory.com/962 [소소한 일상 및 업무TIP 다루기]

반응형