2015-12-21 5 views
2

У меня есть GridView и GridControl в приложении winform (C#), и у меня есть несколько столбцов в GridView, и я хочу установить фон столбцов заголовка. Я могу это сделать, но он меняет все столбцы одного цвета. Я использовал этот код:Цвет заголовка заголовка Devexpress (каждый столбец разного цвета), winform C#

gridcntrActic.LookAndFeel.Style = DevExpress.LookAndFeel.LookAndFeelStyle.Flat; 
gridcntrActic.LookAndFeel.UseDefaultLookAndFeel = false; 
gridviewActiv.Appearance.HeaderPanel.Options.UseBackColor = true; 
gridviewActiv.Appearance.HeaderPanel.BackColor = System.Drawing.Color.White; 

Этот код меняет все заголовки столбцов на белый. Но я хочу изменить первый столбец на белый, а второй на красный и так далее. Как мне это сделать?

ответ

2

Если вы хотите изменить первый столбец белый и второй красный, поэтому изменить его.
Вот пример:

gridcntrActic.LookAndFeel.Style = DevExpress.LookAndFeel.LookAndFeelStyle.Flat; 
gridcntrActic.LookAndFeel.UseDefaultLookAndFeel = false; 

gridviewActiv.Columns[0].AppearanceHeader.Options.UseBackColor = true; 
gridviewActiv.Columns[0].AppearanceHeader.BackColor = System.Drawing.Color.White; 

gridviewActiv.Columns[1].AppearanceHeader.Options.UseBackColor = true; 
gridviewActiv.Columns[1].AppearanceHeader.BackColor = System.Drawing.Color.Red; 

//And so on. 
+0

Спасибо, что это работает, но это работает, если столбец имеет строки. (Нулевая ошибка ссылки, если столбец равен нулю), но он работает на меня. Благодаря nempoBu4 – onur

0

Подписаться на события CustomDrawColumnHeader и установите цвет в колонке вам нужно:

gridView1.CustomDrawColumnHeader += 
    new ColumnHeaderCustomDrawEventHandler(gridView1_CustomDrawColumnHeader); 

void gridView1_CustomDrawColumnHeader(object sender, ColumnHeaderCustomDrawEventArgs e) 
{ 
    if (e.Column == _yourColumn) 
    { 
     e.Appearance.BackColor = Color.Red; 
     e.Handled = true; 
    } 
} 
1

Справочная документация: Customizing the Appearances of Individual Column and Band Headers

Пользовательских явления также могут быть отнесены к отдельному колонку и группам заголовков. Этот метод аналогичен описанному выше. К укажите параметры внешнего вида, используемые для рисования отдельного столбца , используйте свойство GridColumn.AppearanceHeader в столбце. Аналог для полос - это свойство GridBand.AppearanceHeader.

Параметры внешнего вида всех заголовков столбцов в представлении указаны в свойстве GridViewAppearances.HeaderPanel. Свойство AppearanceHeader предоставляет параметры внешнего вида для отдельных заголовков столбцов.

Контейнеры столбцов также могут быть изготовлены по индивидуальному заказу с использованием события GridView.CustomDrawColumnHeader.

Метод 1:

gridControl1.LookAndFeel.Style = DevExpress.LookAndFeel.LookAndFeelStyle.Flat; 
    gridControl1.LookAndFeel.UseDefaultLookAndFeel = false; // <<<<<<<< 
    gridviewActiv.Columns[0].Appearance.HeaderPanel.Options.UseBackColor = true; 
    gridviewActiv.Columns[0].Appearance.HeaderPanel.BackColor = System.Drawing.Color.White; 

Способ 2:

void gridView1_CustomDrawColumnHeader(object sender, ColumnHeaderCustomDrawEventArgs e) { 
    if (e.Column == null) return; 
    if (e.Column == colGrowth) //condition to paint specific column 
    { 
     e.Appearance.BackColor = Color.Red; 
     e.Handled = true; // must set flag to true to tell grid that it has been customized. 
    } 
} 

Источник:Applying Styles to Group Rows
Пример:

using DevExpress.XtraGrid.Views.Grid; 
using DevExpress.XtraGrid.Columns; 
using DevExpress.Utils; 

private void Form1_Load(object sender, System.EventArgs e) { 
    // ... 
    InitStyles(); 
} 

private void InitStyles() { 
    GridView View = gridControl1.MainView as GridView; 
    // Customize the column headers' appearances. 
    AppearanceObject appCountry = View.Columns["Country"].AppearanceHeader; 
    appCountry.BackColor = Color.AntiqueWhite; 
    appCountry.BackColor2 = Color.Snow; 
    View.Columns["City"].AppearanceHeader.BackColor = Color.LightSalmon; 
    // Set the View's painting syle. 
    View.PaintStyleName = "UltraFlat"; 
} 

Примечание:
Используя настройки внешнего вида, вы можете изменить цвет фона заголовка столбца, если для свойства LookAndFeel GridControls установлено значение Flat, UltraFlat или Style3D. Если вы хотите изменить цвет для загоранного заголовка столбца, вы должны создать свой собственный Skin. Еще одно решение - красить заголовок столбца вручную в обработчике событий CustomDrawColumnHeader. Это событие позволяет вам нарисовать заголовок столбца так, как вам нужно, и, следовательно, не полагаться на картину сетки.

Смежные вопросы