【发布时间】:2011-10-05 10:54:25
【问题描述】:
我遇到了一个奇怪的 ListView 问题,我会尽力解释它。我有一个包含 4 列的 ListView,最后一个是不同长度的消息字符串。如果 ListView 项包含某些关键字(失败、异常等),我有一些功能会将其更改为红色。
我第一次注意到这个问题时,一个项目是红色的,并且我在列中没有看到任何会触发红色着色代码的单词。因此,我将传入字符串的长度添加到该项目的前面,并添加了一个文本框,该文本框将在选择时显示该列的文本。我发现前置长度(传入字符串的实际长度)会像 953,提取的 ListViewItem 的文本长度会是 960(str 长度 + 前置长度信息),但是文本框长度中的文本是 253 ...
这里发生了什么?就像所有文本都进入 ListViewItem 但它不能/不会全部显示(不,它不是列宽,在上述情况下我将其设置为超过 1000)。
添加 ListViewItem 并检查错误字符串:
ListViewItem listItem = new ListViewItem(msg.Date);
// Add sub-items for Details view.
listItem.SubItems.Add(msg.Time);
listItem.SubItems.Add(msg.Thread);
listItem.SubItems.Add("L: " + msg.Message.Length + " " + msg.Message);
if (!msg.Message.Contains("FA_FAILCNT"))
{
if (msg.Message.Contains("fail", StringComparison.OrdinalIgnoreCase) ||
msg.Message.Contains("exception", StringComparison.OrdinalIgnoreCase) ||
msg.Message.Contains("db q", StringComparison.OrdinalIgnoreCase))
{
listItem.Font = new Font(listItem.Font, FontStyle.Bold);
listItem.ForeColor = Color.Red;
}
else
listItem.ForeColor = Color.Black;
}
显然它是给我问题的最后一个子项(获得 msg.Message 的那个)
编辑: 废话,this explains it.... 有什么办法解决这个问题?
【问题讨论】:
-
您需要发布一些代码和格式化的 HTML
-
来自链接的文章:
The ListBox control in" _ & " Visual Basic .NET offers an alternative in that" _ & " it now supports a horizontal scroll bar so that" _ & " the user can view all of the string when necessary."这对你不起作用吗? -
老实说,我刚看了标题就失望了哈哈,好收获
标签: c# listview .net-4.0 listviewitem