【发布时间】:2016-12-10 13:45:28
【问题描述】:
当我在列表视图中没有项目时(即初始化表单时),我试图在列表视图中显示一条空文本消息。
我已经尝试搜索不同的方法,其中一种方法是使用 `OnPaint() 事件,但效果不佳...
有人可以帮帮我吗? ` 编辑:这是我尝试过的方法之一:
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 是否
-
@jdweng 是的,我已经检查过了,由于某种原因它根本不起作用。这就是为什么我正在寻找一种不同的方法来显示空文本
-
你遇到异常了吗?
-
不,表单运行无异常,但列表视图仅显示标题列:/
-
你可以处理
0xF消息。
标签: c# winforms listview empty-list