...
在C1TrueDBGrid 或 C1TrueDBDropDown 控件中的每一列由两个列对象,一个全局及一个特定拆分来表示,所有与数据访问和格式化相关属性都被包含在C1DataColumn 对象中,C1DataColumn对象中的属性均为全局的,C1DataColumn 属性的改变可以对所有列值,甚至跨拆分进行改变,C1DataColumn对象可以按照如下访问:
To write code in Visual Basic
Visual Basic |
Me.C1TrueDBGrid1.Columns(0).Caption = "Region" |
To write code in C#
C# |
<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="51a950ff-641a-4b9a-ad35-2d5d1b4a61e6"><ac:plain-text-body><![CDATA[
this.c1TrueDBGrid1.Columns[0].Caption = "Region"; |
]]></ac:plain-text-body></ac:structured-macro>
C1DisplayColumnCollection类
...
Visual Basic |
Me.C1TrueDBGrid1.Splits(0,0).DisplayColumns(0).Style.ForeColor = |
To write code in C#
C# | |
<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="adc63b49-8a7d-4f1f-b53e-ad6ab7379ac8"><ac:plain-text-body><![CDATA[ | this.c1TrueDBGrid1.Splits[0,0].DisplayColumns[0].Style.ForeColor = |
GroupedColumnCollection类
...
Visual Basic |
Me.C1TrueDBGrid1.Splits(0).Caption = "Split00" |
To write code in C#
C# | ||
<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="7d5fcd66-8a89-4a67-bb89-4b2d46baf7f9"><ac:plain-text-body><![CDATA[ | this.c1TrueDBGrid1.Splits[0].Caption = "Split00"; | ]]></ac:plain-text-body></ac:structured-macro> |
GridStyleCollection类
C1TrueDBGrid和C1TrueDBDropDown 控件均在GridStyleCollection 对象中内置保存并用户自定义Style对象,可以在代码中通过名称访问集合成员,并应用他们到网格、列或拆分以控制控件对象的外观,该集合可以在WinForms
版版True DBGrid控件中使用Styles 属性来访问,此外,该集合和它的成员可以通过C1TrueDBGrid Style Editor 在.NET 中更改。
...
Style 对象封装了C1TrueDBGrid, C1TrueDBDropDown, Split, 或C1DisplayColumn对象的字体,颜色,图片以及格式信息,Style 对象是一个非常灵活且强大的工具,它提供了类似于Excel和Word的格式能力以控制网格显示的外观。
当创建了一个C1TrueDBGrid 或 C1TrueDBDropDown控件,它包含了十个内置的样式,您也可以在设计器或代码中更改内置样式或添加自定义样式,此外,通过使用Style对象将格式信息传递给每个单元格或者单元行,两个控件都可以实现几个可选的事件,对象可以通过以下方法访问额:
To write code in Visual Basic
Visual Basic |
Me.C1TrueDBGrid1.Styles("Normal").Backcolor = System.Drawing.Color.Gray |
To write code in C#
C# | ||
<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="06f3afb9-cc45-4f4a-8224-8a08920165d5"><ac:plain-text-body><![CDATA[ | this.c1TrueDBGrid1.Styles["Normal"].Backcolor = System.Drawing.Color.Gray; | ]]></ac:plain-text-body></ac:structured-macro> |
ValueItems类
ValueItems 对象包含一个集合和一组属性,可以在网格中创建数据库值的交替显示,它可以为给定的C1DataColumn对象指定一个允许输入的值,或者它可以用于将原始数据转换为备用文本或者图像显示(例如,
用Balance Due 和 Paid in Full 替代数值数据0和1)。ValueItems 对象包含显示属性和ValueItem 对象的集合,该对象通过以下方式访问:
To write code in Visual Basic
...
Visual Basic |
Me.C1TrueDBGrid.Columns(0).ValueItems.MaxComboItems = 5 |
To write code in C#
C# | ||
<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="48d94f8c-a8e9-4652-94ee-3156933c9db4"><ac:plain-text-body><![CDATA[ | this.c1TrueDBGrid.Columns[0].ValueItems.MaxComboItems = 5; | ]]></ac:plain-text-body></ac:structured-macro> |
ValueItemCollection类
在C1TrueDBGrid 或 C1TrueDBDropDown 控件中的每个C1DataColumn 对象将它的值/值对保存到对象中,并命名
为ValueItem 对象,ValueItemCollection 对象这些值对的集合,该集合可以通过ValueItems对象的Values 属性访问,例如,想要在集合中选择第一个ValueItem,其代码如下:
To write code in Visual Basic
...
Visual Basic |
Me.C1TrueDBGrid.Columns(0).ValueItems.Values(0).DisplayValue = "Canada" |
To write code in C#
C# | ||
<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="905e927f-fcaa-48dc-85ab-2815a1bbf7d8"><ac:plain-text-body><![CDATA[ | this.c1TrueDBGrid.Columns[0].ValueItems.Values[0].DisplayValue = "Canada"; | ]]></ac:plain-text-body></ac:structured-macro> |
ValueItem类
ValueItem 对象由两个属性组成:DisplayValue和Value,Value 属性指定了数据库中基础值,DisplayValue 属性指定在网格中值的显示,这些对象可以包含在ValueItemCollection 对象中,并在.NET中的ValueItemCollection Editor编辑,该编辑器在ValueItems 对象中的C1TrueDBGrid Designer 下编辑,更多详细信息请参阅使用使用
ValueItemCollection 编辑器编辑器 (Section 6.4)。
...
To write code in C#
C# | |
// 读取一个Split对象属性。 | ]]></ac:plain-text-body></ac:structured-macro> |
使用集合的Item 方法创建集合中对象的一个引用,以下代码创建网格默认Split对象一个引用:
To write code in Visual Basic
...
C# | |
// Declare Split0 as Split object. | ]]></ac:plain-text-body></ac:structured-macro> |
注意之前的示例中使用了命名空间限定符,推荐使用命名空间限定符已解决与其他控件的潜在命名冲突,例如,如果其他控件也用于同一个项目,并定义一个名为Split的对象,此时WinForms版版True DBGrid 命名空间限定符就是必要的,命名控件限定符也用于其他控件。
因此Item方法对于隐含集合,它会被省略:
To write code in Visual Basic
...
C# | |
// 声明Split0为Split对象。 | ]]></ac:plain-text-body></ac:structured-macro> |
使用Split0来读取或设置Split 对象属性或执行它的方法:
To write code in Visual Basic
Visual Basic |
' 读取一个Split对象属性。 |
To write code in C#
C# |
// 读取一个Split对象属性。 |
在很多时候,您需要读取和设置多个对象的属性,例如:
To write code in Visual Basic
Visual Basic |
' 读取一个Split对象的属性。 variable2 = Me.C1TrueDBGrid1.Splits(0,0).Property2 |
To write code in C#
C# | |
// 读取一个Split对象的属性。 variable2 = this.c1TrueDBGrid1.Splits[0,0].Property2; this.c1TrueDBGrid1.Splits[0,0].Property2 = variable2; | ]]></ac:plain-text-body></ac:structured-macro> |
该段代码效率是非常低下的,因为C1TrueDBGrid1.Splits(0,0)这个对象被访问的次数非常多,更有效的方法是对对象创建一个引用并可以反复的使用它:
To write code in Visual Basic
...
C# |
// 声明Split0为一个Split对象。 variable2 = Split0.Property2; // Set a Split object's properties. |
...
C# |
// 声明Cols为一个Columns集合对象,此时将它设置为C1TrueDBGrid1的C1DataColumnCollection对象。 |
...
Visual Basic 也提供高效的声明方式,可以不需要精确的分配变量就能设置对象的多个属性,例如下述代码设置网格中第一列多个属性(注意集合是从0开始的):
To write code in Visual Basic
Visual Basic |
With Me.C1TrueDBGrid1.Columns(0) |
To write code in C#
C# | ||
<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="cbf41aed-3df6-4d31-b6b7-5255d986a345"><ac:plain-text-body><![CDATA[ | this.c1TrueDBGrid1.Columns[0].Property1 = variable1; this.c1TrueDBGrid1.Columns[0].Property2 = variable2; | ]]></ac:plain-text-body></ac:structured-macro> |
添加成员
为了创建并添加一个对象到一个集合,需要使用集合的 Add 方法,该方法将对象作为它的唯一参数,例如:通过添加
一个ValueItem对象到ValueItemCollection对象中创建包含多个值项的列:
To write code in Visual Basic
...
Visual Basic |
' 创建一个ValueItem对象。 |
To write code in C#
C# |
// 创建一个ValueItem对象。 |
C1TrueDBGrid.ValueItem v = new C1TrueDBGrid.ValueItem(); this.c1TrueDBGrid1.Columns[0].ValueItems.Values.Add(v); |
]]></ac:plain-text-body></ac:structured-macro>
该代码添加了一个ValueItem 对象到C1TrueDBGrid1的ValueItemCollection中,或者创建了一个从索引1开始的ValueItem 对象插入方法:
To write code in Visual Basic
...
Visual Basic |
' 创建了一个从索引1开始的Split对象。 |
To write code in C#
C# |
//创建了一个从索引开始的Split对象。 |
C1TrueDBGrid.ValueItem S; this.c1TrueDBGrid1.Columns[0].ValueItems.Values.Insert(1, S); |
]]></ac:plain-text-body></ac:structured-macro>
唯一不能使用Add 或 RemoveAt 方法添加或删除的对象是Split对象,Split对象的 InsertHorizontalSplit /
RemoveHorizontalSplit和 InsertVerticalSplit / RemoveVerticalSplit 方法必须正确使用添加或移除Splits,这些方法可以在设计时右键点击网格的上下文菜单使用。
...
To write code in C#
C# | |
// 从索引1开始移除Split对象。 | ]]></ac:plain-text-body></ac:structured-macro> |
当该语句被执行后,集合中的所有索引值大于1的splits都会下调1并填充移除split的空间,注意到RemoveAt 方法的参数是待移除成员的位置。 5.18.1.3 使用Count属性
使用集合的Count属性决定集合中对象的编号:
To write code in Visual Basic
...
C# |
for (n = 0; n < this.c1TrueDBGrid1.Columns.Count; n++) { |
Count 属性也可以用于追加和移除列:
To write code in Visual Basic
...
Visual Basic |
' 决定列数。 ' 在Columns集合后面追加一个列。 |
...
True |
To write code in C#
C# |
// 决定列数。 { this.c1TrueDBGrid1.Columns.RemoveAt(0); |
...
C# |
C1TrueDBGrid.C1DataColumn c; foreach (c In this.c1TrueDBGrid1.Columns) { |
...