我正在使用启用了过滤器栏的 ComponentOne TrueDBGrid 控件。我想修改默认行为,以便在单击过滤器栏中的单元格时,自动选择该单元格中的文本。通常我会连接一个 MouseDown 事件并使用 CellContaining 方法来检查单击了哪个单元格,但这只会为过滤栏的行和列返回-1。所以我无法识别单个单元格,也不知道如何在过滤栏中选择特定单元格。
有没有人有任何建议我可以如何做到这一点?
我正在使用启用了过滤器栏的 ComponentOne TrueDBGrid 控件。我想修改默认行为,以便在单击过滤器栏中的单元格时,自动选择该单元格中的文本。通常我会连接一个 MouseDown 事件并使用 CellContaining 方法来检查单击了哪个单元格,但这只会为过滤栏的行和列返回-1。所以我无法识别单个单元格,也不知道如何在过滤栏中选择特定单元格。
有没有人有任何建议我可以如何做到这一点?
发布解决方案以防其他人遇到此问题。
您需要使用 PointAtEnum 在您单击的坐标下方捕获某种网格元素。然后,您可以通过将网格的 EditActive 属性设置为 True 来简单地将单元格设置为 EditMode。这就是你在 MouseUp 事件中的做法:
Private Sub C1TrueDBGrid1_MouseUp(sender As Object, _
e As System.Windows.Forms.MouseEventArgs) _
Handles C1TrueDBGrid1.MouseUp
If Me.C1TrueDBGrid1.PointAt(e.X, e.Y) = _
C1.Win.C1TrueDBGrid.PointAtEnum.AtFilterBar Then
Me.C1TrueDBGrid1.EditActive = True
End If
End Sub