본문 바로가기
C#

DataGridView Cell색깔 변경 - C#

by 샤나엘 2021. 10. 27.
반응형

데이터 그리드 뷰의 셀 색깔을 클릭하면 핑크색,

더블클릭하면 다시 하얀색으로 변경시켜주는 예제입니다.

 

List에 데이터 객체를 만들어서 간단하게 데이터소스를 바인딩하고

글자색을 변경한 다음

클릭 이벤트도 설정해줍니다.

 

그리고 각 클릭 이벤트를 구현한 간단한 예제입니다.

 

소스

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WindowsFormsApp5
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            //DataGirdView에 데이터 설정
            List<DataClass> data = new List<DataClass>();
            data.Add(new DataClass("과일", "사과", 100));
            data.Add(new DataClass("과일", "포도", 200));
            data.Add(new DataClass("채소", "상추", 50));

            this.dataGridView1.DataSource = data;

            //글자색 변경
            this.dataGridView1.ForeColor = Color.Red;

            //클릭 이벤트 설정
            this.dataGridView1.CellClick += DataGridView1_CellClick;
            this.dataGridView1.CellDoubleClick += DataGridView1_CellDoubleClick;
        }

        /// <summary>
        /// 더블클릭하면 셀 색깔을 하얀색으로 설정
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void DataGridView1_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
        {
            DataGridView view = sender as DataGridView;

            view.CurrentCell.Style.BackColor = Color.White;
        }

        /// <summary>
        /// 클릭하면 셀 색깔을 핑크색으로 설정
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void DataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            DataGridView view = sender as DataGridView;

            view.CurrentCell.Style.BackColor = Color.LightPink;
        }
    }

    public class DataClass
    {
        public string A { get; private set; }
        public string B { get; private set; }
        public double C { get; private set; }

        public DataClass(string a, string b, double c)
        {
            this.A = a;
            this.B = b;
            this.C = c;
        }
    }
}

실행결과

처음 실행했을 때 화면
셀을 클릭했을 때 화면

 

다시 더블클릭했을 때 화면

 

반응형

댓글