本主题描述如何设置带区的布局。 首先,描述了如何在设计时刻创建一个示例布局,然后描述了如何在运行时刻创建一个示例布局。
在设计时刻定制带区的布局
要在设计时刻定制带区,则需要调用设计器的 Bands(带区) 页面。 这允许更改列和带区的布局、添加和删除带区、以及定制带区设置。 下面的插图展示了该页面。
注意,设计器不显示列标头。 实际上,列标头的可视性取决于创建列的方式。 如果人工创建列,则列没有放置在带区内。 因此不显示。 但是,如果一次性为所有字段创建列,则它们被放置到第一个带区 (默认创建此带区) 内。 本主题处理第一种情况。 请参阅 创建列并把列绑定到数据字段 主题来了解创建列的细节。
一旦 Bands(带区) 页面被调用,就可以使用 Add New Band(添加新带区)... 按钮创建带区,并使用拖放操作重新布置带区。 或者可以按下该按钮并且拖动鼠标指标放落到带区标头面板。 这允许精确地把带区创建在所需的位置,而不需要稍后重新布置。 下面的动画举例说明了如何使用第二种方法创建一个简单的带区结构。
可以单击带区标头来访问带区的设置。 使用这种方式来修改带区标题。 下面的插图展示了如何完成此任务。
最后,把列添加到带区。 要达到此目的,则单击 Show Columns Selector(显示列选择器) 按钮。 这将调用显示列标头的 “自定义”窗体。 把标头拖放到适当的带区。 下面的动画展示了如何使用列来填充 General Info 带区。
下面的插图展示了最终的列和带区布局。
在运行时刻定制带区的布局
如同在 带区概述 主题中描述的那样,位于顶层级中的带区通过 BandedGridView.Bands 集合公开。 因此,为了创建顶层带区,需要把 GridBand 对象添加到此集合。 每个带区依次可以包含它自己的子带区集合,通过它的 GridBand.Children 属性公开。 因此,应把带区对象添加到这些集合中来创建下级带区。
要把列指派到带区,则初始化该列的 BandedGridColumn.OwnerBand 属性。 在把列指派到带区之后,就可以通过 GridBand.Columns 属性来访问带区列集合。 使用此集合的 GridBandColumnCollection.MoveTo 方法来重新设置带区内的列顺序。
下面的代码展示了如何创建与设计时刻示例相匹配的带区和列的布局。
C# | 复制代码 |
---|---|
// obtaining the main View and clearing its bands collection BandedGridView View = gridControl1.MainView as BandedGridView; view.Bands.Clear(); // creating the bands layout GridBand bandGeneral = View.Bands.Add("General Info"); GridBand bandTechnical = View.Bands.Add("Technical Info"); GridBand bandEngine = bandTechnical.Children.Add("Engine Info"); GridBand bandTransmission = bandTechnical.Children.Add("Transmission Info"); // assigning columns to bands colTrademark.OwnerBand = bandGeneral; colModel.OwnerBand = bandGeneral; colLiter.OwnerBand = bandEngine; colCylinders.OwnerBand = bandEngine; colSpeedCount.OwnerBand = bandTransmission; colTransmission.OwnerBand = bandTransmission; |
Visual Basic | 复制代码 |
---|---|
' obtaining the main View and clearing its bands collection Dim View As BandedGridView = GridControl1.MainView View.Bands.Clear() ' creating the bands layout Dim BandGeneral As GridBand = View.Bands.Add("General Info") Dim BandTechnical As GridBand = View.Bands.Add("Technical Info") Dim BandEngine As GridBand = BandTechnical.Children.Add("Engine Info") Dim BandTransmission As GridBand = BandTechnical.Children.Add("Transmission Info") ' assigning columns to bands colTrademark.OwnerBand = BandGeneral colModel.OwnerBand = BandGeneral colLiter.OwnerBand = BandEngine colCylinders.OwnerBand = BandEngine colSpeedCount.OwnerBand = BandTransmission colTransmission.OwnerBand = BandTransmission |