728x90
반응형
안녕하세요
C# Datagridview에서 Up, Down 버튼을 클릭했을 때
Row를 원하는 위치로 이동 할 수 있는 코드를 포스팅하겠습니다.
1. Windows Form을 생성합니다.
- DataTable에 No, 이름, 지역 컬럼을 생성 한 뒤 4 Row의 데이터를 담았습니다.
- Datatable에 데이터를 담은 다음 Datagridview Datasource에 담아서 표시하였습니다.
private void FrmdgvChangeRow_Load(object sender, EventArgs e)
{
DataTable dt = new DataTable();
dt.Columns.Add("NO");
dt.Columns.Add("name");
dt.Columns.Add("area");
dt.Rows.Add("1", "도레미", "강남");
dt.Rows.Add("2", "파솔라", "역삼");
dt.Rows.Add("3", "시도", "서초");
dt.Rows.Add("4", "도미솔", "방배");
dgvRowChange.DataSource = dt;
}
2. Datagridview Row 이동 하기
- Up, Down 버튼 클릭 이벤트를 추가합니다.
- 이동할 로우를 선택 하고 Up 버튼을 클릭할 경우 위로 이동합니다.
- 이동 할 로우를 선태가 하고 Down 버튼을 클릭 할 경우 아래로 이동합니다.
//UP 버튼 Click 이벤트
private void btnUp_Click(object sender, EventArgs e)
{
var row = dgvRowChange.SelectedRows[0];
if (row != null && row.Index > 0)
{
var swapRow = dgvRowChange.Rows[row.Index - 1];
object[] values = new object[swapRow.Cells.Count];
foreach (DataGridViewCell cell in swapRow.Cells)
{
values[cell.ColumnIndex] = cell.Value;
cell.Value = row.Cells[cell.ColumnIndex].Value;
}
foreach (DataGridViewCell cell in row.Cells)
cell.Value = values[cell.ColumnIndex];
dgvRowChange.Rows[row.Index - 1].Selected = true;//have the selection follow the moving cell
}
}
//Down 버튼 Click 이벤트
private void btnDown_Click(object sender, EventArgs e)
{
var row = dgvRowChange.SelectedRows[0];
if (row != null && row.Index < dgvRowChange.RowCount - 1)
{
var swapRow = dgvRowChange.Rows[row.Index + 1];
object[] values = new object[swapRow.Cells.Count];
foreach (DataGridViewCell cell in swapRow.Cells)
{
values[cell.ColumnIndex] = cell.Value;
cell.Value = row.Cells[cell.ColumnIndex].Value;
}
foreach (DataGridViewCell cell in row.Cells)
cell.Value = values[cell.ColumnIndex];
dgvRowChange.Rows[row.Index + 1].Selected = true;
}
}
3. Datagridview Row 이동 결과
- NO "4"인 Row를 선택하고 Up 버튼 클릭 시 아래와 같이 한 줄 위로 이동한 것을 볼 수 있습니다.
- NO "1"인 Row를 선택하고 Down 버튼을 클릭하여 맨 아래로 이동 한 것을 볼 수 있습니다.
이상 C# Winform Datagridview의 Row 이동 하기였습니다.
728x90
반응형
'소소한 C# 지식' 카테고리의 다른 글
[C#]C#에서 컴퓨터 정보 조회 (18) | 2022.05.05 |
---|---|
[C#]Local PC IP 조회 및 네트워크 상태 체크 (12) | 2022.05.03 |
[C#]C# 기상청 API 연동하여 날씨 데이터 저장하기 (16) | 2022.04.26 |
[C#] C# 주석 사용 방법 및 종류 (9) | 2022.04.22 |
[C#]C#으로 Window Service(윈도우 서비스) 만들기 (10) | 2022.04.21 |
댓글