2013-03-20 8 views
0

VGridControl의 모든 레코드에 대한 색상을 변경할 수 있습니다.EditorRow에서 텍스트 색상 변경

vGridControl1.Appearance.ReadOnlyRecordValue.ForeColor

하지만 하나의 행에 대해 색상을 변경하는 방법을 모르겠어요.

EditorRow row = new EditorRow(id); 
row.Name = "row" + id; 
row.Properties.Row.Appearance.ForeColor = ColorText; 
row.Properties.Row.Appearance.Options.UseForeColor = true; 

시도해 봅니다. 그러나 그것은 효과가 없습니다. 도와주세요.

글쎄, 이벤트 CustomDrawRowHeaderCell을 사용하면 헤더의 색상을 변경할 수 있습니다. 코드 :

private void vGridControl1_CustomDrawRowHeaderCell(object sender, DevExpress.XtraVerticalGrid.Events.CustomDrawRowHeaderCellEventArgs e) 
    { 
     try { 
      System.Drawing.Color ColorText = Color.FromArgb(m_Color.r, m_Color.g, m_Color.b); 
      e.Row.Appearance.ForeColor = ColorText; 
     } 
     catch (Exception ex) 
     { } 
    } 

하지만, 텍스트 행의 색상을 변경하려고 할 때, 나는 문제가 : 나는 텍스트 행의 색상을 변경할 수 없습니다. 하지만 행 BackColor를 변경할 수 있습니다. 누구든지 나를 도울 수 있습니까? 코드 :

+0

DevExpress Q & A 지원 사이트에서 더 좋은 기회를 얻으실 수 있습니다 : http://www.devexpress.com/Support/Center –

답변

0

난 당신이 이동하고있는 gridview에 DevExpress documentaion을 확인하는 것이 제안한다. 당신은 색상을 변경하는 행을 필요로하는 경우

당신은 이런 식으로 작업을 수행 할 수 있습니다

public partial class Form1 : Form 
    { 
    public Form1() 
    { 
     InitializeComponent(); 

     gridControl1.DataSource = new List<Structure> 
     { 
      new Structure {Id = 1, Val1 = "nr 1"}, 
      new Structure {Id = 2, Val1 = "nr 2"}, 
      new Structure {Id = 3, Val1 = "nr 3"} 
     }; 
    } 

    private void gridView1_RowStyle(object sender, DevExpress.XtraGrid.Views.Grid.RowStyleEventArgs e) 
    { 
     int myExpectedRowHandle = 1; 
     if (e.RowHandle == myExpectedRowHandle) 
     { 
     e.Appearance.BackColor = Color.Crimson; 
     } 
    } 
    } 

    public class Structure 
    { 
    public string Val1 { get; set; } 
    public int Id { get; set; } 
    } 

당신이 paticular 작업에 대한 RowStyle 이벤트를 처리합니다. 결과이는 다음과 같을 것이다 : enter image description here

편집

한 셀의 색상 설정하려면 - 이벤트 내 examle에서 RowCellStyle

을 처리하는이과 같습니다

private void gridView1_RowCellStyle(object sender, RowCellStyleEventArgs e) 
{ 
    int myExpectedRowHandle = 1; 
    if (e.Column != colVal1 || e.RowHandle != myExpectedRowHandle) 
    return; 

    e.Appearance.ForeColor = Color.Crimson; 
} 
+0

답변 해 주셔서 감사합니다. 그러나 행 BackColor를 변경합니다. 나는 이벤트 vGridControl1_CustomDrawRowHeaderCell에서 그것을한다. 셀에서 텍스트 색상을 변경하는 방법을 알려줄 수 있습니까? (행에서 가능합니까?) 이 예제에서는 텍스트 nr 2의 색을 변경해야합니다. 배경색이 아님. – novicegis

+0

@ user2191359 그 일을하기위한 답이 업데이트되었습니다. 편집 –

+0

@ user2191359 편집을 참조하십시오. –

0

여기에 VGridControl에 행을 삽입합니다. 이 기능에서 텍스트 색상을 변경할 수 있습니까?

enter code here 


private void InsertNewRow(string id, string text, int type) 
    { 
     EditorRow row = new EditorRow(id); 
     row.Name = "row" + id; 
     row.Properties.ImageIndex = type; 
     //vGridControl1.Appearance.ReadOnlyRecordValue.ForeColor = ColorText; 
     M_Objects myColorObject = new M_Objects(); 
     if (GetObjectById(id, ref myColorObject) >= 0) 
     { 
      m_Color = myColorObject.Color; 
     } 
     System.Drawing.Color ColorText = Color.FromArgb(m_Color.r, m_Color.g, m_Color.b); 
     row.Appearance.ForeColor = ColorText;//here I try to change color 
     row.Appearance.Options.UseForeColor = true;//It does not work 

     if (vGridControl1.RepositoryItems.Count == 0) 
      vGridControl1.RepositoryItems.Add("TextEdit"); 
     row.Properties.RowEdit = vGridControl1.RepositoryItems[0]; 
     row.Properties.Value = text; 


     row.Height = 28; 
     row.Properties.ReadOnly = true; 
     vGridControl1.Rows["MainRow"].ChildRows.Add(row);//I don't write this code. Is it right? 
    }