바운딩된 DataGrid는 삭제 삽입이 안됩니다.
그래서 Table에서 삭제 삽입을 해야 합니다.
그러면 바로 DataGridView에도 반영됩니다.
다음의 코드는 Row를 위로 아래로 이동 시키는 코드 예입니다.
public partial class Form1 : Form
{
DataSet ds; // 작업 DataSet
DataTable dt; // 작업 Data Table
// DataGridView의 이름 dataGrid
private void btUp_Click(object sender, EventArgs e)
{
int index = dataGrid.SelectedRows[0].Index; // 선택된 Row의 인덱스
if (index <= 0 || index>dataGrid.Rows.Count-2) return; // 처음위치 또는 범위밖
DataRow tempRow= dt.NewRow(); // Row 삭제전 임시저장용
tempRow.ItemArray=dt.Rows[index].ItemArray; // 선택된 Row를 임시저장용에 복사
dt.Rows.RemoveAt(index); // 현재위치에서 삭제
dt.Rows.InsertAt(tempRow,index-1); // 현재위치 앞에 복사본 삽입
dataGrid.CurrentCell = dataGrid.Rows[index-1].Cells[0]; // 이동된 Row를 선택
ControlEnable();
}
private void btDown_Click(object sender, EventArgs e)
{
int index = dataGrid.SelectedRows[0].Index;
if (index > dataGrid.Rows.Count - 2) return; // Row가 3개면 Count는 4.
DataRow tempRow = dt.NewRow();
tempRow.ItemArray = dt.Rows[index].ItemArray;
dt.Rows.RemoveAt(index);
dt.Rows.InsertAt(tempRow, index + 1);
dataGrid.CurrentCell = dataGrid.Rows[index + 1].Cells[0];
ControlEnable();
}
'Tip !!! > C# tip' 카테고리의 다른 글
DataGridView의 Row 갯수는? (0) | 2022.08.01 |
---|---|
검색결과 레코드(Row) DataGrid에 모우기 (0) | 2022.08.01 |
DataGridView에서 선택된 Cell 처리 (0) | 2022.08.01 |
폼 닫기 취소 시키기 form closing cancel (0) | 2022.07.29 |
리치텍스트박스 RichTextBox에서 행 단위로 색깔 바꾸기 (0) | 2022.07.28 |