Page tree
Skip to end of metadata
Go to start of metadata

下述提示通过论坛中用户经常询问的问题编辑整理。
提示1: 使用SetDataBinding方法保持完整的网格布局。
如果DataSource通过代码来重置,它显示是网格中的所有数据,并不会保留Designer创建的初始布局。您可以通过使用SetDataBinding方法来保持网格的布局,需要将HoldFields 参数设置为True,例如:
To write code in Visual Basic

Visual Basic

C1TrueDBGrid1.SetDataBinding(DbDataSet, "Customer", True)

To write code in C#

C#

this.c1TrueDBGrid1.SetDataBinding(this.DbDataSet, "Customer", true);

提示2: 通过FetchCellStyle事件设置列样式。
由于可以移动和排序列,所以在一般情况下您需要谨慎使用列索引显示以及引用不同列的列索引。
您可以确保样式与特定的显示列相关联,在下述示例中通过FetchCellStyle 事件将样式与一个显示列相关联:
To write code in Visual Basic

Visual Basic

Private Sub C1TrueDBGrid1_FetchCellStyle(ByVal sender As Object, ByVal e As
C1.Win.C1TrueDBGrid.FetchCellStyleEventArgs) Handles C1TrueDBGrid1.FetchCellStyle
If Me.C1TrueDBGrid1.Splits(0).DisplayColumns(e.Col).DataColumn.Value.GetType
Is GetType(Integer) Then
e.CellStyle.ForeColor = Color.Red End If
End Sub

To write code in C#

C#

private void c1TrueDBGrid1_FetchCellStyle(object sender, FetchCellStyleEventArgs e) { if (this.c1TrueDBGrid1.Splits[0].DisplayColumns[e.Col].DataColumn.Value.GetType()

== typeof(string)) {
e.CellStyle.ForeColor = Color.Red; }
}

提示 3: 获取网格中当前行或列的序号。
用户可以很容易查找到正在交互的单元格,或者当前选择的单元格,获取所选取单元的行号或者列号变得非常简单。
例如,下列代码可以确定与显示当前单元格的行号与列号:
To write code in Visual Basic

Visual Basic

Me.C1TrueDBGrid1.Row = Me.C1TrueDBGrid1.RowContaining(C1TrueDBGrid1.Row)
Me.C1TrueDBGrid1.Col = Me.C1TrueDBGrid1.ColContaining(C1TrueDBGrid1.Col)
MessageBox.Show("The number of the column is " & Me.C1TrueDBGrid1.Col & " the row row number is " & Me.C1TrueDBGrid1.Row)

To write code in C#

C#

this.c1TrueDBGrid1.Row = this.c1TrueDBGrid1.RowContaining(c1TrueDBGrid1.Row); this.c1TrueDBGrid1.Col = this.c1TrueDBGrid1.ColContaining(c1TrueDBGrid1.Col); MessageBox.Show("The number of the column is " + this.c1TrueDBGrid1.Col + " the row row number is " + this.c1TrueDBGrid1.Row);

提示4: 当在分层数据视图中,禁止用户将网格折叠到常规数据视图中。
当网格处于分层数据视图中,您可以轻松的禁止用户折叠网格到常规数据视图中。
使用Collapse 事件,设置e.Cancel = True 来阻止用户折叠扩展图标,例如:
To write code in Visual Basic

Visual Basic

Private Sub C1TrueDBGrid1_Collapse(ByVal sender As System.Object, ByVal e As C1.Win.C1TrueDBGrid.BandEventArgs) Handles C1TrueDBGrid1.Collapse e.Cancel = True
End Sub

To write code in C#

C#

private void c1TrueDBGrid1_Collapse(object sender, BandEventArgs e) {
e.Cancel = true;
}

  • No labels