Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

WinForms版版True DBGrid使用最新的.NET技术来研发,WinForms版版True DBGrid控件以及它的可编程控件均为根据
Microsoft规范设计的.NET对象,如果您已经熟悉Microsoft .NET对象和集合模型,您将很容易上手WinForms版版True
DBGrid for
如果您是Visual Studio的新用户,请阅读使用对象与集合使用对象与集合 (Section 5.18),它介绍了如何在代码中使用WinForms版版
True DBGrid 对象,单个对象可以设计执行不同的任务, 用来操纵他们的技术都是相同的,一旦您掌握了这些通用的编程结构,Visual Studio控件的使用 将会变得更加轻松和直观。
不管您是否有相关的经验,请参阅以下章节,它提供的所有WinForms版版True DBGrid对象和集合的略缩概要。

...


 WinFormsTrue DBGrid对象与集合


WinForms版版True DBGrid 拥有丰富的对象模型,并包含以下元素:

WinForms版版True DBGrid 提供丰富的属性集、方法以及事件,可以方便您开发复杂的数据库应用程序,通过对True
DBGrid对象模型的组织您可以非常轻松控制一个大的功能集。对象和集合包含可视实体,如在设计器或者代码中可以被自定义的列,对象和集合还包含抽象的实体,如仅在代码中可用的数组和书签。
通过加入到项目中,这两个控件在.NET工具箱中是可用的:

...

以下章节提供了WinForm版版True DBGrid对象与集合的简要概述。

...


 C1TrueDBGrid


C1TrueDBGrid控件是WinForms版版True DBGrid 的主要对象,使用它的C1DataColumnCollection
C1DisplayColumnCollection 对象可以创建,访问和更改用于映射网格的物理列与底层的数据库字段列对象,使用它的SplitCollection对象,网格可以被划分为多个水平或者垂直的窗格,为相同的数据源提供不同的视图。

...


 C1TrueDBDropDown


C1TrueDBDropDown 控件是C1TrueDBGrid 控件的一个子集,用于网格列的多列的下拉列表,C1TrueDBDropDown 控件不能作为一个独立控件。
在设计器中,将一个C1TrueDBDropDown控件放置于窗体中,同放置一个C1TrueDBGrid控件一样,然而,下拉控件在运行时是不可见的,直到添加C1TrueDBGrid控件的一个C1DataColumn 对象。
为了使用下拉控件,需要在设计器或者代码中设置网格列的DropDown 属性为一个C1TrueDBDropDown控件的名称,在运行时,当用户点击单元格内的按钮来选取一个列时,C1TrueDBDropDown控件将出现在网格当前单元格的下方,如果用户从下拉控件中选取了一个项,网格当前的单元格将会被更新,C1TrueDBDropDown 控件也支持渐进式搜索。

...


 C1DataColumnCollection


C1TrueDBGrid控件和C1TrueDBDropDown控件均包含一个C1DataColumnCollection 对象和C1DataColumn 对象,该集合包含在C1TrueDBGrid对象之下,并可以通过C1TrueDBGrid Designer更改,同时它也可以通过WinForms 版版True DBGrid的Columns 属性来访问。

...


 C1DataColumn对象


C1TrueDBGridC1TrueDBDropDown 控件中的每一列由两个列对象,一个全局及一个特定拆分来表示,所有与数据访问和格式化相关属性都被包含在C1DataColumn 对象中,C1DataColumn对象中的属性均为全局的,C1DataColumn 属性的改变可以对所有列值,甚至跨拆分进行改变,C1DataColumn对象可以按照如下访问:
To write code in Visual Basic

...

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


C1TrueDBGrid控件和C1TrueDBDropDown控件均包含一个C1DisplayColumnCollection 对象和C1DisplayColumn对象,该集合包含在Split对象之下,并可以通过SplitDisplayColumns使用,此外,集合可以通
C1DisplayColumnCollection Editor在.NET中被更改。更多详细信息,请参阅使用使用C1DisplayColumnCollection编辑编辑器器 (Section 6.3)

...


 C1DisplayColumn对象


在网格中的每一个拆分都包含至少一个C1DisplayColumn对象,关于列显示的所有属性都包含在这个对象中,不
C1DataColumn属性,C1DisplayColumn 对象的所有属性都是特定拆分的,改变C1DisplayColumn 的属性将改变特定拆分中特定列的值,对象可以通过以下方式访问:
To write code in Visual Basic

...

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 =
]]></ac:plain-text-body></ac:structured-macro>
System.Drawing.Color.Blue;

...


 GroupedColumnCollection


DataView 属性被设置为DataViewEnum.GroupBy,分组区域将被创建在网格上,该集合对象代表分组区域中的列 (C1DataColumn 对象)。当列被拖进或拖出分组区域,在集合中相应的列将被添加或删除。

...


 SplitCollection


C1TrueDBGrid控件和含一个SplitCollection集合,其也包含和Split对象,网格默认拆分为一个,但也可以被拆分为多个,该集合可以通过使用C1TrueDBGrid的Split属性来访问,此外该集合也可以通过在.NET中的Split Collection Editor来更改,请参阅使用集合拆分编辑器使用集合拆分编辑器 (Section 6.2)获取更多信息。

...


 Split 对象


WinForms版版True DBGrid支持类似于Excel的拆分,允许将网格划分为垂直和水平窗格以支持用户对数据资源不同视图,Split 对象代表一个拆分,它包含相邻列的一个分组并作为一个滚动单元。
当一个C1TrueDBGrid 控件被创建,它默认包含了一个Split对象,Split 对象的所有属性均独立应用于C1TrueDBGrid控件,因此不需要关心拆分,除非需要创建一个固定的非滚动的列,对象可以按照以下方式访问:
To write code in Visual Basic

...

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


C1TrueDBGridC1TrueDBDropDown 控件均在GridStyleCollection 对象中内置保存并用户自定义Style对象,可以在代码中通过名称访问集合成员,并应用他们到网格、列或拆分以控制控件对象的外观,该集合可以在WinForms
版版True DBGrid控件中使用Styles 属性来访问,此外,该集合和它的成员可以通过C1TrueDBGrid Style Editor 在.NET 中更改。

...


 Style对象


Style 对象封装了C1TrueDBGrid, C1TrueDBDropDown, Split, 或C1DisplayColumn对象的字体,颜色,图片以及格式信息,Style 对象是一个非常灵活且强大的工具,它提供了类似于Excel和Word的格式能力以控制网格显示的外观。
当创建了一个C1TrueDBGridC1TrueDBDropDown控件,它包含了十个内置的样式,您也可以在设计器或代码中更改内置样式或添加自定义样式,此外,通过使用Style对象将格式信息传递给每个单元格或者单元行,两个控件都可以实现几个可选的事件,对象可以通过以下方法访问额:
To write code in Visual Basic

...

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 DuePaid in Full 替代数值数据0和1)。ValueItems 对象包含显示属性和ValueItem 对象的集合,该对象通过以下方式访问:
To write code in Visual Basic

...

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


C1TrueDBGridC1TrueDBDropDown 控件中的每个C1DataColumn 对象将它的值/值对保存到对象中,并命名
ValueItem 对象,ValueItemCollection 对象这些值对的集合,该集合可以通过ValueItems对象的Values 属性访问,例如,想要在集合中选择第一个ValueItem,其代码如下:
To write code in Visual Basic

...

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 对象由两个属性组成:DisplayValueValueValue 属性指定了数据库中基础值,DisplayValue 属性指定在网格中值的显示,这些对象可以包含在ValueItemCollection 对象中,并在.NET中的ValueItemCollection Editor编辑,该编辑器在ValueItems 对象中的C1TrueDBGrid Designer 下编辑,更多详细信息请参阅使用使用
ValueItemCollection 编辑器编辑器 (Section 6.4)

...


 PrintInfo


PrintInfo 对象用于指定页面布局和打印工作字符如输出设备的名字,间距设置,页眉与页脚以及打印的份数。
C1TrueDBGrid控件的PrintInfo 属性返回更改打印工作的对象。
PrintInfo 对象是持久的,这就意味着一个打印布局可以在设计时定义,运行时可以在代码中重新被调用。

...


 PrintPreviewWinSettings


PrintPreviewWinSettings 对象提供了网格打印预览窗口的相关属性,通过该对象,页眉页脚和其他可视元素均可以在预览窗口中被设置,通过C1TrueDBGrid 控件的PreviewInfo 属性来访问。

...


 HBar


HBar 对象用于指定水平滚动条的属性,通过使用HScrollBar 属性,开发人员可以指定滚动条的高度,以及是否能够自动显示。

...


 VBar


VBar 对象用于指定垂直滚动条的属性,通过使用VScrollBar 属性,开发人员可以指定滚动条的高度,以及是否能够自动显示。

...


 GridLines


GridLines 对象用于指定ColumnDividerRowDivider 属性的特性,通过使用GridLines对象可以在运行或者设计时对行或者列线的颜色与样式更改。

...


 GridBorders


GridBorders 对象用于指定StyleBorders属性特性,该属性设置单元格的列边框,通过使用对象,开发人员可以指定每一个单元格边框的宽度和单元格边框的颜色。

...


 SelectedRowCollection


当用户在运行时选择并高亮C1TrueDBGrid控件的一行或多行,所选择行的行索引被保存在SelectedRowCollection对象,在代码中,集合的Item属性和IndexOf方法用于决定哪一行被选择,也可以使用它的AddRemoveAt方法编程实现选择或者取消选择记录。

...


 SelectedColumnCollection


当用户在运行时选择并高亮C1TrueDBGrid控件的一列或多列,所选择列的列索引被保存在SelectedRowCollection对象,在代码中,集合的Item属性和IndexOf方法用于决定哪一列被选择,也可以使用它的AddRemoveAt方法编程实现选择或者取消选择记录。

...


 使用对象与集合


本节将描述如何在代码中更有效率的使用对象与集合,尽管这个概念已经在WinForms版版True DBGrid对象与集合对象与集合 (Section 5.1)中阐述了,其相同的工作原理可以应用在所有的Visual Studio对象和集合。
WinForms版版True DBGrid控件被置于一个窗体中,C1TrueDBGrid 对象就会被创建,在Visual Studio中创建的C1TrueDBGrid 对象默认命名为C1TrueDBGrid1, C1TrueDBGrid2 以此类推,控件名称可以在设计时通过属性窗口改变。

...


 使用集合


C1TrueDBGrid 对象拥有8个独立的集合用以支配不同的对象,每一个集合关联C1TrueDBGrid 内的属性并返回集合对象,这可以避免当需要在代码中使用网格时,开发人员要输入整个集合名,以下表格显示了集合与属性的对应关系:

...

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

...

唯一不能使用AddRemoveAt 方法添加或删除的对象是Split对象,Split对象的 InsertHorizontalSplit /
RemoveHorizontalSplitInsertVerticalSplit / RemoveVerticalSplit 方法必须正确使用添加或移除Splits,这些方法可以在设计时右键点击网格的上下文菜单使用。

...


 移除成员


不管集合如何实现AddInsert方法,删除项的语法都是相同的,若要从集合中移除现有项,请使用RemoveAt 方法:
To write code in Visual Basic

...

Visual Basic

For n = 0 To Me.C1TrueDBGrid1.Columns.Count - 1
Debug.WriteLine(Me.C1TrueDBGrid1.Columns(thumbs down)(拇指向下).Caption)
Next n


To write code in C#

...