기본 콘텐츠로 건너뛰기

DevExpress / Grid Control - Change Cell Color

private void gridView1_RowCellStyle(object sender, RowCellStyleEventArgs e)
{
GridView view = sender as GridView;

// 특정 컬럼의 셀 스타일을 변경하고 싶을 때
if (e.Column.FieldName == "YourColumnName")
{
var cellValue = view.GetRowCellValue(e.RowHandle, e.Column).ToString();

// 특정 조건에 따라 스타일을 변경합니다.
if (cellValue == "특정값")
{
e.Appearance.BackColor = Color.Yellow; // 배경색
e.Appearance.ForeColor = Color.Red; // 글자색
}
else if (cellValue == "다른값")
{
e.Appearance.BackColor = Color.Green;
e.Appearance.ForeColor = Color.White;
}

// 특정 행 번호와 컬럼 이름을 기반으로 셀을 식별합니다. 
if (e.RowHandle == 2 && e.Column.FieldName == "YourColumnName") 
// 조건이 충족되면 색상을 변경합니다. 
e.Appearance.BackColor = Color.Yellow; // 배경색 
e.Appearance.ForeColor = Color.Red; // 글자색 
}
// 필요에 따라 다른 조건을 추가합니다.
}



<example code>
private void gridView1_RowCellStyle(object sender, RowCellStyleEventArgs e)
{
    GridView view = sender as GridView;
    if (e.Column == view.Columns[0])
        e.Appearance.BackColor = _Constant.ColorReady;


    var strValue = view.GetRowCellValue(e.RowHandle, e.Column).ToString();
    double cellValue = util.TryParseDouble(strValue, 0);

    //* 첫번째 컬럼만 테스트
    if(e.Column == view.Columns[1])
    {
        if (strValue == "-") return;

        if (cells[e.RowHandle] == 1)
        {
            if (cellValue > 2000 && cellValue <= 4200)
                e.Appearance.BackColor = _Constant.ColorVoltage;
            else
                e.Appearance.BackColor = _Constant.ColorFail;
        }
        else if (cells[e.RowHandle] == 0)
        {
            e.Appearance.BackColor = _Constant.ColorNoCell;
        }
    }
}

private void gridView1_RowCellStyle(object sender, RowCellStyleEventArgs e)
{
    GridView view = sender as GridView;
    if (e.Column == view.Columns[0])
    {
        e.Appearance.BackColor = _Constant.ColorReady;
        return;
    }

    /// result 값 가져오기
    var strValue = view.GetRowCellValue(e.RowHandle, view.Columns[6]).ToString();
    int cellValue = util.TryParseInt(strValue, 0);

     /// 여러 컬럼에 적용
    if (strValue == "-") return;

    /// 판정을 set value 에서 할 때
    ///e.Column.AppearanceCell.BackColor
    if (cellValue == -1) e.Appearance.BackColor = _Constant.ColorNoCell;
    else if (cellValue == 0) e.Appearance.BackColor = Color.White;
    else if ((cellValue == 1 || cellValue == 3) 
        && (e.Column == view.Columns[1] || e.Column == view.Columns[2]))    
    {
        e.Appearance.BackColor = _Constant.ColorFail;
    }
    else if ((cellValue == 2 || cellValue == 4)
        && (e.Column == view.Columns[1] || e.Column == view.Columns[2]))
    {
        e.Appearance.BackColor = Color.Blue;
    }
}

//* 현재 적용중
private void gridView1_RowCellStyle(object sender, RowCellStyleEventArgs e)
{
    GridView view = sender as GridView;
    if (e.Column == view.Columns[0])
    {
        e.Appearance.BackColor = _Constant.ColorReady;
    }

    /// result 값 가져오기
    var strValue = view.GetRowCellValue(e.RowHandle, view.Columns[6]).ToString();
    int cellValue = util.TryParseInt(strValue, -99);

    /// 여러 컬럼에 적용
    if (strValue == "-") return;

    if (cellValue == -1)
    {
        e.Appearance.BackColor = _Constant.ColorNoCell;
    }
    else if (cellValue == 0) e.Appearance.BackColor = Color.White;
    else if ((cellValue == 1 || cellValue == 3) 
        && (e.Column == view.Columns[1] || e.Column == view.Columns[2]))    
    {
        e.Appearance.BackColor = _Constant.ColorFail;
    }
    else if ((cellValue == 2 || cellValue == 4)
        && (e.Column == view.Columns[1] || e.Column == view.Columns[2]))
    {
        e.Appearance.BackColor = Color.Blue;
    }
}

댓글

이 블로그의 인기 게시물

C# - Serial Port ASCII/HEX Format

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.IO.Ports; namespace SerialTest1 {     public partial class Form1 : Form     {         delegate void MyDelegate();      //델리게이트 선언(크로스 쓰레드 해결하기 위한 용도)         bool SendForamt = true;          // true : ASCII   false : HEX         bool ReceiveFormat = true;       // true : ASCII   false : HEX         public Form1()         {             InitializeComponent();          ...

C# - Windows Form 에 있는 control 찾기

// 아래 코드는 form 의 최상위 control만 찾을 수 있음. // panle, groubbox ... 내부에 있는 control은 찾지 못함. Control GetControlByName(string Name) {     foreach (Control c in this.Controls)         if (c.Name == Name)             return c;     return null; } // form 의 모든 control을 찾을 수 있음. string name = "btnBit" + (i + 1).ToString("D2"); var tmpBtn = this.Controls.Find(name, true).FirstOrDefault(); if (tmpBtn != null) {     if (value == 1) tmpBtn.BackColor = Color.Lime;     else tmpBtn.BackColor = Color.Gray; }

C# - ARGB 색상

속성 A 이  Color  구조체의 알파 구성 요소 값을 가져옵니다. Alice Blue ARGB 값이  #FFF0F8FF 인 시스템 정의 색을 가져옵니다. Antique White ARGB 값이  #FFFAEBD7 인 시스템 정의 색을 가져옵니다. Aqua ARGB 값이  #FF00FFFF 인 시스템 정의 색을 가져옵니다. Aquamarine ARGB 값이  #FF7FFFD4 인 시스템 정의 색을 가져옵니다. Azure ARGB 값이  #FFF0FFFF 인 시스템 정의 색을 가져옵니다. B 이  Color  구조체의 파랑 구성 요소 값을 가져옵니다. Beige ARGB 값이  #FFF5F5DC 인 시스템 정의 색을 가져옵니다. Bisque ARGB 값이  #FFFFE4C4 인 시스템 정의 색을 가져옵니다. Black ARGB 값이  #FF000000 인 시스템 정의 색을 가져옵니다. Blanched Almond ARGB 값이  #FFFFEBCD 인 시스템 정의 색을 가져옵니다. Blue ARGB 값이  #FF0000FF 인 시스템 정의 색을 가져옵니다. Blue Violet ARGB 값이  #FF8A2BE2 인 시스템 정의 색을 가져옵니다. Brown ARGB 값이  #FFA52A2A 인 시스템 정의 색을 가져옵니다. Burly Wood ARGB 값이  #FFDEB887 인 시스템 정의 색을 가져옵니다. Cadet Blue ARGB 값이  #FF5F9EA0 인 시스템 정의 색을 가져옵니다. Chartreuse ARGB 값이  #FF7FFF00 인 시스템 정의 색을 가져옵니다. Chocolate ARGB 값이  #FFD2691E 인 시스템 정의 색을 가져옵니다. Coral ARGB ...