본문 바로가기
소프트웨어 개발/비주얼스튜디오(Visual Studio)

[C#/Devexpress/Winform] GridControl(GridView) 사용하기 - 1

by Sakriun_to 2022. 6. 20.
728x90

GridControl 사용하여 [추가 / 삭제 / 불러오기 / 저장하기 / 초기화] 하는 방법을 알아보도록 하겠습니다.

1. 기본 세팅

- GridControl을 form에 추가

 

- 소스 기본 세팅

using System.Data;
using DevExpress.XtraGrid.Views.Grid;

namespace Winform
{
    public partial class GridControlTest : Form
    {
        DataTable dt = new DataTable();

        public GridControlTest()
        {
            InitializeComponent();
            //GridControl 초기화
            InitGridControl();
            
            dt = new DataTable(); // DataTable 생성
            dt.Columns.Add("ID");
            dt.Columns.Add("Name");
        }
        
        //GridControl 초기화
        public void InitGridControl()
        {
            GridView gv = this.gridControl1.MainView as GridView;
            gv.OptionsView.ShowGroupPanel = false;
            gv.OptionsBehavior.Editable = false;
        }
    }   
}

 

2. 추가 : GridControl 항목 추가

private void DataAdd()
{
    // DataTable에 항목 추가
    dt.Rows.Add(new string[] { "아이디", "이름" });
    
    // gridControl에 바인딩
    this.gridControl1.DataSource = dt;
}

 

3.  삭제 : GridControl 선택 항목의 행 삭제

- 행 선택 후 삭제 버튼을 클릭 할 때의 이벤트

private void SelectDataDel(object sender, EventArgs e)
{
    // 선택된(포커스된) 항목의 행 삭제
    gridView1.DeleteRow(gridView1.FocusedRowHandle);
}

 

4. 불러오기 : 파일에서 값 불러와서 DataTable에 저장 후 gridControl에 바인딩

private void DataLoad()
{
    string fileName = "file.txt"; // 파일 이름
    dt = new DataTable(); // DataTable 생성
    dt.Columns.Add("ID");
    dt.Columns.Add("Name");

    // 파일에서 값 불러와서 DataTable에 저장
    foreach (string line in File.ReadLines(fileName))
    {
        string[] cafeInfo = line.Split(',');
        dt.Rows.Add(new string[] { cafeInfo[0], cafeInfo[1] });
    }

    //DataTable 데이터 저장 및 바인딩
    this.gridControl1.DataSource = dt;
}

 

5. 저장하기 : DataTable에 있는 값을 파일로 저장하기

private void DataSave()
{
    string fileName = "file.txt"; // 파일 이름
    string DataInfo = ""; // 파일 내용
    foreach (DataRow dc in this.dt.Rows)
    {
        DataInfo = DataInfo + dc[0].ToString() + "," + dc[1].ToString() + "\n";
    }
    
    // 파일 저장하기(덮어쓰기)
    File.WriteAllText(fileName, DataInfo, Encoding.Default);
}

 

6. 초기화 : GridContorl 초기화

private void GridViewInit(object sender, EventArgs e)
{
    dt = new DataTable();
    dt.Columns.Add("ID");
    dt.Columns.Add("Name");

    //DataTable 데이터 저장 및 바인딩
    this.gridControl1.DataSource = dt;
}

 

728x90
반응형

댓글