Как создать EmptyDataText для DataGridView в приложении Windows - PullRequest
4 голосов
/ 03 мая 2011

Сегодня я столкнулся с проблемой, чтобы показать / скрыть метку в соответствии с источником данных. Если в источнике данных нет строки, тогда я бы хотел установить «Данные не найдены» , иначе отобразить количество записей в приложении winforms .

Это было бы возможно в Asp.net как:

<emptydatatemplate>
No Data Found
</emptydatatemplate>

OR

EmptyDataText=" No Data Found"

Но я бы хотел в Windows Application . Пожалуйста, помогите мне, если у вас есть решение для того же.

Любое решение будет оценено! Спасибо, Имдадхусен

Ответы [ 2 ]

12 голосов
/ 04 мая 2011

Один из способов сделать это - использовать событие 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 за принятое решение.

Спасибо, Imdadhusen

0 голосов
/ 08 февраля 2018

Поскольку у меня возникают проблемы с реализацией этого поведения с помощью события Paint, я решил добавить в форму панель, содержащую графику, которую я хочу показать, когда данные не отображаются (в основном пара меток), и поменять ее местами с помощьюсетка при необходимости.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...