【问题标题】:VB.NET - Hide the top left corner cell of a datagridviewVB.NET - 隐藏 datagridview 的左上角单元格
【发布时间】:2017-05-05 17:40:33
【问题描述】:

我有一个 3 行 2 列的数据网格视图。我的行和列都有标题。

问题是我的数据网格视图的左上角有一个空单元格。我认为这是我的行标题的列标题或类似的东西。我没有成功隐藏这个单元格,有可能吗?

谢谢

示例:

hide this cell  | colHead1| colHead2 |
--------------------------------------
firstname       | x       | y        |
lastname        | x1      | y1       |
society         | x2      | y2       |

编辑: 我尝试将属性dtgv.TopLeftHeaderCell.Visible 设置为False,但它是只读的。

【问题讨论】:

  • 您可以设置DataGridView1.RowHeadersVisible = False,但我认为您无法完成您想要的。如果同时显示列标题和行标题,您要求隐藏一个必须存在的单元格,否则它将显示什么 - 灰色背景?
  • @OhBeWise 是的,我想显示表单的背景。如果我将 Visible 属性设置为 False,它将隐藏我的标题,我想保留它们。
  • @OhBeWise 哦,对不起,因为我在度假,所以我忘了尝试你的解决方案。效果很好,非常感谢!

标签: vb.net datagridview header hide visible


【解决方案1】:

我撤销我的评论。您可以手动完成此操作。例如,在您的 DataGridView.CellPainting 事件处理程序中的一个平淡无奇/未修改的 DataGridView 中,您可以像这样匹配背景:

If e.RowIndex < 0 AndAlso e.ColumnIndex < 0 Then
    Using brush As New SolidBrush(Me.dataGridView1.BackgroundColor)
        e.Graphics.FillRectangle(brush, e.CellBounds)
    End Using

    e.Handled = True
End If


我想显示表单的背景

如果您的意思是要将 DataGridView 背景设置为表单的背景,用户 Deumberletsdance 的这两个 (C#) 答案演示了将表单图像的正确部分裁剪为 @ 的一般设置987654331@。使用他们的方法(不调用SetCellsTransparent())加上对DataGridView.CellPainting 事件处理程序的以下更改应该可以工作:

If e.RowIndex < 0 AndAlso e.ColumnIndex < 0 Then
    e.Graphics.FillRectangle(Brushes.Transparent, e.CellBounds)  
    e.Handled = True
End If

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多