Devexpress列标题颜色(每列颜色不同),winform c#
本文关键字:颜色 winform 标题 Devexpress | 更新日期: 2023-09-27 18:27:33
我在winform app(c#)中有一个GridView
和GridControl
,在GridView
中有几个列,我想设置标题列的背景。我可以这样做,但它会将所有列更改为相同的颜色。我用了那个代码:
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;
此代码将所有列标题更改为白色。但我想把第一列改成白色,第二列改成红色等等。我该怎么做?
如果您想将第一列更改为白色,将第二列更改为红色,请更改它。
以下是示例:
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.
参考文档:自定义单个列和带标题的外观
自定义外观也可以指定给各个列和标注栏标头。该技术与上述技术类似。到指定用于绘制单个列的外观设置标头,请使用列的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.
}
}
源:将样式应用于分组行
示例:
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";
}
注意:
当GridControls的LookAndFeel属性设置为Flat、UltraFlat或Style3D值时,可以使用"外观"设置更改列标题的背景色。如果希望更改蒙皮列标题的颜色,则应创建自己的"蒙皮"。另一个解决方案是在CustomDrawColumnHeader事件处理程序中手动绘制列标题。此事件允许您根据需要绘制列标题,因此不依赖于栅格的绘制
订阅事件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;
}
}