开发者

How to creating EmptyDataText for DataGridView in Windows Application

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


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


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.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜