...
您可以使用.NET的集合编辑器更改GridStyleCollection,以在运行时更改整个网格的外观,例如使列头中的标题文本居中,可以更改内置Heading 样式的HorizontalAlignment 属性为AlignHorzEnum.Center。
以下声明的代码结果:
To write code in Visual Basic
Visual Basic |
Me.C1TrueDBGrid1.Styles("Heading").HorizontalAlignment = AlignHorzEnum.Center |
To write code in C#
C# | ||
<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="cefc84d1-6aa2-4538-aec8-7b60f8b7eaa3"><ac:plain-text-body><![CDATA[ | this.c1TrueDBGrid1.Styles["Heading"].HorizontalAlignment = AlignHorzEnum.Center; | ]]></ac:plain-text-body></ac:structured-macro> |
然而,它可以不必要使用C1TrueDBGrid 样式编辑器样式编辑器 或者在代码中控制GridStyleCollection 的成员命名,网格和它的控件对象给出了几个属性并返回了Style 对象,正如下一节所描述的,网格的外观可以直接通过这些对象进行微调,更多详细信息请参阅使用使用 C1TrueDBGrid样式编辑器样式编辑器 (Section 6.5)。
...
Visual Basic |
Dim myfont As New Font(Me.C1TrueDBGrid1.Font, FontStyle.Bold) |
To write code in C#
C# |
<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="f4e3adde-6d88-4244-9757-694c5ea31c9b"><ac:plain-text-body><![CDATA[
Font myfont = new Font(this.c1TrueDBGrid1.Font, FontStyle.Bold); this.c1TrueDBGrid1.CaptionStyle.Font = myfont; this.c1TrueDBGrid1.Styles["Caption"].Font = myfont; |
]]></ac:plain-text-body></ac:structured-macro>
第一个声明指定了网格标题栏的字体,因为这不是一个根样式,所以命名标题样式也会改变。
...
Visual Basic |
Dim myfont As Font |
To write code in C#
C# |
<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="aad3b00d-c95f-4dce-a07f-0dd405785158"><ac:plain-text-body><![CDATA[
Font myfont; myfont = new Font (this.c1TrueDBGrid1.Styles["Normal"].Font, FontStyle.Bold); this.c1TrueDBGrid1.Styles["Normal"].Font = myfont; |
]]></ac:plain-text-body></ac:structured-macro>
示例2:仅影响第一个拆分的数据单元格
在本示例中,只影响第一个拆分的数据单元格,这是因为拆分标题,列头和列脚都从内置样式Caption, Heading和 Footing中分别继承字体。
以下代码仅影响第一个拆分的数据单元格:
To write code in Visual Basic
Visual Basic |
Dim myfont As Font |
To write code in C#
C# |
<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="025badf6-dd91-4a21-bec2-4b6c2d0a1d46"><ac:plain-text-body><![CDATA[
Font myfont; myfont = new Font (this.c1TrueDBGrid1.Splits[0].Style.Font, FontStyle.Bold); this.c1TrueDBGrid1.Splits[0].Style.Font = myfont; |
]]></ac:plain-text-body></ac:structured-macro>
示例3:仅在第一个拆分中影响所有元素
该示例将第一个的粗体在第一个拆分的所有元素中呈现,此外Style 属性对CaptionStyle, HeadingStyle, 及FooterStyle 属性的设置也是必要的。
以下代码将仅在第一个拆分中影响所有元素:
To write code in Visual Basic
Visual Basic |
Dim myfont As Font myfont1 = New Font (Me.C1TrueDBGrid1.Splits(0).CaptionStyle.Font, FontStyle.Bold) Me.C1TrueDBGrid1.Splits(0).CaptionStyle.Font = |
...
myfont1 |
...
myfont2 |
To write code in C#
C# |
Font myfont; |
Font myfont3; myfont = new Font (this.c1TrueDBGrid1.Splits[0].Style.Font, FontStyle.Bold); this.c1TrueDBGrid1.Splits[0].Style.Font = myfont; myfont1 = new Font (this.c1TrueDBGrid1.Splits[0].CaptionStyle.Font, FontStyle.Bold); this.c1TrueDBGrid1.Splits[0].CaptionStyle.Font = myfont1; myfont2 = new Font (this.c1TrueDBGrid1.Splits[0].HeadingStyle.Font, FontStyle.Bold); this.c1TrueDBGrid1.Splits[0].HeadingStyle.Font = myfont2; myfont3 = new Font (this.c1TrueDBGrid1.Splits[0].FooterStyle.Font, FontStyle.Bold); this.c1TrueDBGrid1.Splits[0].FooterStyle.Font = myfont3; |
]]></ac:plain-text-body></ac:structured-macro>
示例4:仅影响第一个拆分的第一个列中的数据单元格
...
Visual Basic |
Dim myfont As Font |
To write code in C#
C# |
Font myfont; |
myfont = new Font (this.c1TrueDBGrid1.Splits[0].DisplayColumns[0].Style.Font, FontStyle.Bold); this.c1TrueDBGrid1.Splits[0].DisplayColumns[0].Style.Font = myfont; |
]]></ac:plain-text-body></ac:structured-macro>
示例5:仅在第一个拆分的第一列影响所有元素
本示例将第一个拆分的第一列中的所有元素设置为粗体,此外Style 属性对HeadingStyle, 及FooterStyle 属性的设置也是必要的。
以下代码仅在第一个拆分的第一列影响所有元素:
To write code in Visual Basic
Visual Basic |
Dim myfont As Font |
To write code in C#
C# |
Font myfont; |
myfont = new Font (this.c1TrueDBGrid1.Splits[0].DisplayColumns[0].Style.Font, FontStyle.Bold); this.c1TrueDBGrid1.Splits[0].DisplayColumns[0].Style.Font = myfont; |
]]></ac:plain-text-body></ac:structured-macro>
Wiki Markup |
---|
\\ myfont1 = new Font (this.c1TrueDBGrid1.Splits\[0\].DisplayColumns\[0\].HeadingStyle.Font, FontStyle.Bold); this.c1TrueDBGrid1.Splits\[0\].DisplayColumns\[0\].HeadingStyle.Font = myfont1; myfont2 = new Font (this.c1TrueDBGrid1.Splits\[0\].DisplayColumns\[0\].FooterStyle.Font, FontStyle.Bold); this.c1TrueDBGrid1.Splits\[0\].DisplayColumns\[0\].FooterStyle.Font = myfont2; |
...
在本示例中,只有第一个拆分中的数据单元格被影响,这时因为拆分标题,列头与列脚分别从内置样式 Caption,
Heading, 及Footing继承背景颜色。
以下代码将值更改第一个拆分中的数据单元格:
To write code in Visual Basic
Visual Basic |
Me.C1TrueDBGrid1.Splits(0).Style.BackColor = System.Drawing.Color.Lavender |
To write code in C#
C# | ||
<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="4bdebefe-80a9-4818-8edd-e60c21d23ae9"><ac:plain-text-body><![CDATA[ | this.c1TrueDBGrid1.Splits[0].Style.BackColor = System.Drawing.Color.Lavender; | ]]></ac:plain-text-body></ac:structured-macro> |
示例8:仅更改第一个拆分的第一列中的数据单元格
在本示例中,仅有第一个拆分中的第一列中的数据可以被影响,这时因为列头和列脚从内置样式Heading 和 Footing中分别继承它们的背景颜色。
以下代码会对第一个拆分中第一列数据单元格进行更改:
To write code in Visual Basic
Visual Basic |
Me.C1TrueDBGrid1.Splits(0).DisplayColumns(0).Style.BackColor = |
To write code in C#
C# | |
<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="93d96b45-ed62-4913-b8e1-ead0ce2f01e0"><ac:plain-text-body><![CDATA[ | this.c1TrueDBGrid1.Splits[0].DisplayColumnsp[0].Style.BackColor = |
示例9:设置C1DisplayColumn对象的对齐
...
Visual Basic |
Me.C1TrueDBGrid1.Splits(0).DisplayColumns(0).Style.HorizontalAlignment = |
To write code in C#
C# | |
<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="89ff42f7-4cc7-4a80-81e1-6f73cbcdbf5e"><ac:plain-text-body><![CDATA[ | this.c1TrueDBGrid1.Splits[0].DisplayColumns[0].Style.HorizontalAlignment = |
示例10:设置列标题的对齐
本示例阐述了列头和列脚的普通与特定对齐之间的区别,如果HeadingStyle (或FooterStyle) 属性的HorizontalAlignment 属性成员未被设置为AlignHorzEnum.General,此时头(或脚) 会根据数据单元格独立对齐。
以下代码设置了列头的对齐:
To write code in Visual Basic
Visual Basic |
With Me.C1TrueDBGrid1.Splits(0).DisplayColumns(0) |
To write code in C#
C# |
<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="722a8c44-6585-4a79-b379-b7e35caff569"><ac:plain-text-body><![CDATA[
this.c1TrueDBGrid1.Splits[0].DisplayColumns[0].HeadingStyle.HorizontalAlignment = C1.Win.C1TrueDBGrid.AlignHorzEnum.Near; |
<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="b1f704c4-5020-4ab8-8309-14e52dad35bd"><ac:plain-text-body><![CDATA[
|
<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="517cebc7-9665-4ded-9df1-3e5bf33951ef"><ac:plain-text-body><![CDATA[
|
]]></ac:plain-text-body></ac:structured-macro>
C1.Win.C1TrueDBGrid.AlignHorzEnum.Center; |
对单元格应用样式
WinForms版版True DBGrid 提供了三种方法控制单元格中字符的显示:
...
Visual Basic |
Me.C1TrueDBGrid1.AddCellStyle(C1.Win.C1TrueDBGrid.CellStyleFlag.CurrentCell + |
To write code in C#
C# | ||
<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="5351273f-46a7-4b07-b32b-58389947c207"><ac:plain-text-body><![CDATA[ | this.c1TrueDBGrid1.AddCellStyle(C1.Win.C1TrueDBGrid.CellStyleFlag.CurrentCell+ C1.Win.C1TrueDBGrid.CellStyleFlag.UpdatedCell, this.c1TrueDBGrid1.Styles["RedBold"]); | ]]></ac:plain-text-body></ac:structured-macro> |
注意注意: 当前单元格状态当MarqueeStyle 属性没有设置为MarqueeEnum.FloatingEditor时才会实现,浮动编辑器选取框总是使用由控制面板设置的系统高亮颜色。
虽然指定单元格条件的方法提供了更多的控制和灵活性,但它也需要写额外的代码应对某些常见的情况。调用AddCellStyle 即可立即起效,它可以用于交互效果并适用于整个网格特征。
...
C# |
private void c1TrueDBGrid1_FetchCellStyle( object sender, |
...
C# |
private void c1TrueDBGrid1_FetchCellStyle( object sender, CellStyle.Font = myfont; } break; default: Console.WriteLine ("FetchCellStyle not handled: " + e.Col); |
出于更有效的因素,可以只设置列的FetchStyle属性为True,因而您可以在FetchCellStyle事件中处理。
...
Visual Basic |
Private Sub TDBGrid1_FetchRowStyle(ByVal sender As Object, ByVal e As |
To write code in C#
C# |
private void TDBGrid1_FetchRowStyle( object sender, |
虽然FetchRowStyle 事件可以用于实现间隔行颜色方案,一个更容易且更有效的方法是使用AlternatingRows属性完成相同的任务,可以同时使用内置的EvenRow 样式和 OddRow 样式。
10.3.5 单元格样式评估顺序
...
Visual Basic |
With Me.C1TrueDBGrid1.CaptionStyle |
To write code in C#
C# |
this.c1TrueDBGrid1.CaptionStyle.BackgroundImage = System.Drawing.Image.FromFile(@"c:\bubbles.bmp"); this.c1TrueDBGrid.BackgroundPictureDrawMode = |
该代码会调整标题文本的颜色,以及将它加粗,其效果如下显示。
为了在设计时实现相同的效果,也可以编辑C1TrueDBGrid Style Editor中的内置Caption样式,或者属性窗口中的 CaptionStyle属性成员。
默认情况下,网格元素中的背景图位置居中,根据背景位图的高度调整BackgroundPictureDrawMode 属性值以确保整个区域被填充,该属性决定了图片是否会居中,平铺或者拉伸以适应整个区域,其显示如下表。
...
C# | ||
// 给出网格的一个平面外观并记录选择,行分隔和滚动条移除。 | ||
<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="da8e66b5-2957-4533-8993-7632ac69fb47"><ac:plain-text-body><![CDATA[ | this.c1TrueDBGrid1.Splits[0].Style.BackgroundImage = System.Drawing.Image.FromFile("paper.bmp"); |
显示前景图片
使用前景图片对静态网格元素提供可视化提示,如标题栏,列头以及列脚。前景图片由Style的ForegroundImage 属性指定,前景图可以显示在除文本以外的地方,或者代替文本显示,但不可以覆盖文本显示。
前景图片有ForeGroundPicturePosition 属性,用以指定前景图片在单元文本中的相对位置,值与呈现如下图所示:
PositionDisplayNear Far
...