Я пытаюсь отобразить пустое текстовое сообщение внутри списка, когда у меня нет элементов внутри него (это когда форма инициализируется).Показать пустой текст, когда в элементах формы ListView нет элементов
Я попытался искать другой метод, из которых один использует OnPaint() событие `, но это не сработало хорошо ...
Может кто-нибудь помочь мне? ` Edit: это один из методов, которые я пробовал:
protected override void WndProc(ref Message m)
{
base.WndProc(ref m);
if (m.Msg == 20)
{
if (this.Items.Count == 0)
{
_b = true;
Graphics g = this.CreateGraphics();
int w = (this.Width - g.MeasureString(_msg,
this.Font).ToSize().Width)/2;
g.DrawString(_msg, this.Font,
SystemBrushes.ControlText, w, 30);
}
else
{
if (_b)
{
this.Invalidate();
_b = false;
}
}
}
if (m.Msg == 4127) this.Invalidate();
}
Вы забыли проверить значение null и если Items.Count <0? Счетчик элементов будет равен -1, если конструктор формы выполнит, и ваш код может получить вызов в течение этого времени. Если всегда проверяйте, меньше ли счет элемента управления, чем ноль, чтобы исключить исключения, когда выполняется конструктор формы. – jdweng
@jdweng Да, я проверил это, по какой-то причине это вообще не работает .. Вот почему я ищу другой метод для отображения пустого текста – User987
Вы получаете исключение? – jdweng