C# 当文本为空时,在DataGridView中显示文本

C# 当文本为空时,在DataGridView中显示文本,c#,.net,vb.net,winforms,datagridview,C#,.net,Vb.net,Winforms,Datagridview,当文本为空时,如何在DataGridView的灰色部分显示文本 我找到了这个示例,但在VB.net中不起作用 GridView1.EmptyDataText="No Records Found"; EmptyDataText是Web窗体GridView控件的属性。在Windows窗体中,要在DataGridView没有任何行时显示文本,您需要自己渲染文本。为此,您可以处理DataGridView的Paint事件,并使用textrender.DrawText渲染文本 C# VB.NET Priv

当文本为空时,如何在
DataGridView
的灰色部分显示文本

我找到了这个示例,但在VB.net中不起作用

GridView1.EmptyDataText="No Records Found";

EmptyDataText
是Web窗体
GridView
控件的属性。在Windows窗体中,要在
DataGridView
没有任何行时显示文本,您需要自己渲染文本。为此,您可以处理
DataGridView
Paint
事件,并使用
textrender.DrawText
渲染文本

C#

VB.NET

Private Sub DataGridView1_Paint(sender As Object, e As PaintEventArgs) _
    Handles DataGridView1.Paint
    If DataGridView1.Rows.Count = 0 Then
        TextRenderer.DrawText(e.Graphics, "No records found.",
            DataGridView1.Font, DataGridView1.ClientRectangle,
            DataGridView1.ForeColor, DataGridView1.BackgroundColor,
            TextFormatFlags.HorizontalCenter Or TextFormatFlags.VerticalCenter)
    End If
End Sub

EmptyDataText
是Web窗体
GridView
控件的属性。对于Windows窗体,您需要自己呈现文本。在后台执行查询时,我可以用什么方法绘制文本“加载数据”?要显示加载,我建议使用。谢谢。我已经用上面的例子解决了这个问题。我所做的是使用一个事件来指示后台的数据加载何时完成。然后,我使用一个标志管理textRenderer中显示的文本。后台工作程序运行时,我显示文本“加载数据”。后台工作完成后,我将显示数据,如果datagridView.rows.cout=0,则显示文本“未找到任何记录”是,您也可以这样做。然而,链接的帖子也是一个很好的例子,展示了加载动画+使用异步/等待模式加载数据。
Private Sub DataGridView1_Paint(sender As Object, e As PaintEventArgs) _
    Handles DataGridView1.Paint
    If DataGridView1.Rows.Count = 0 Then
        TextRenderer.DrawText(e.Graphics, "No records found.",
            DataGridView1.Font, DataGridView1.ClientRectangle,
            DataGridView1.ForeColor, DataGridView1.BackgroundColor,
            TextFormatFlags.HorizontalCenter Or TextFormatFlags.VerticalCenter)
    End If
End Sub