如何在 Windows 应用程序中为 DataGridView 创建 EmptyDataText

发布于 2024-11-04 08:52:16 字数 384 浏览 0 评论 0原文

今天我面临根据数据源显示/隐藏标签的问题。如果数据源没有行,那么我想设置“未找到数据”,否则在 winforms 应用程序中显示记录数

这在 Asp.net 中是可能的,例如:

<emptydatatemplate>
No Data Found
</emptydatatemplate>

或者

EmptyDataText=" No Data Found"

但是我想在 Windows 应用程序中。如果您有任何解决方案,请帮助我。

任何解决方案将不胜感激! 谢谢, 伊姆达胡森

Today i am facing problem to show/hide label according to data source. If the data source has no row then i would like to set "No Data Found" else display number of records in winforms application.

This would be possible in Asp.net like:

<emptydatatemplate>
No Data Found
</emptydatatemplate>

OR

EmptyDataText=" No Data Found"

But I would like in Windows Application. Please help me if you have any solution for the same.

Any solution would be appreciated!
Thanks,
Imdadhusen

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

意中人 2024-11-11 08:52:16

实现此目的的一种方法是使用 Paint() 事件检查行,如果没有行,则编写消息:
感谢

private void dataGridView1_Paint ( object sender, PaintEventArgs e )
{
    DataGridView sndr = ( DataGridView )sender;

    if ( sndr.Rows.Count == 0 ) // <-- if there are no rows in the DataGridView when it paints, then it will create your message
    {
        using ( Graphics grfx = e.Graphics )
        {
            // create a white rectangle so text will be easily readable
            grfx.FillRectangle ( Brushes.White, new Rectangle ( new Point (), new Size ( sndr.Width, 25 ) ) );
            // write text on top of the white rectangle just created
            grfx.DrawString ( "No data returned", new Font ( "Arial", 12 ), Brushes.Black, new PointF ( 3, 3 ) );
        }
    }
}

JOAT-MON 接受的解决方案。

谢谢,
伊姆达胡森

One way you could accomplish this is to use the Paint() event to check the rows and if there are none, then write your message:
Collapse

private void dataGridView1_Paint ( object sender, PaintEventArgs e )
{
    DataGridView sndr = ( DataGridView )sender;

    if ( sndr.Rows.Count == 0 ) // <-- if there are no rows in the DataGridView when it paints, then it will create your message
    {
        using ( Graphics grfx = e.Graphics )
        {
            // create a white rectangle so text will be easily readable
            grfx.FillRectangle ( Brushes.White, new Rectangle ( new Point (), new Size ( sndr.Width, 25 ) ) );
            // write text on top of the white rectangle just created
            grfx.DrawString ( "No data returned", new Font ( "Arial", 12 ), Brushes.Black, new PointF ( 3, 3 ) );
        }
    }
}

Thanks JOAT-MON for accepted solution.

Thanks,
Imdadhusen

梦晓ヶ微光ヅ倾城 2024-11-11 08:52:16

由于我在使用 Paint 事件实现此行为时遇到麻烦,因此我通过在表单中​​添加一个面板来解决,其中包含我想要在没有显示数据时显示的图形(基本上是几个标签),并在需要时将其与网格交换。

Since I'm having troubles implementing this behavior using the Paint event, I solved by adding a panel to my form containing the graphics I want to show when no data is displayed (basically a couple of labels) and swap it with the grid when needed.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文