Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

like image 567
imdadhusen Avatar asked May 03 '11 07:05

imdadhusen


1 Answers

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

like image 151
imdadhusen Avatar answered Oct 16 '22 15:10

imdadhusen