我正在编写一个分析器,它显示特定程序的数据包。有些数据包非常大,列表视图只显示前15-20个字符:\
这是我的代码
string __str = String.Join(" ", data.Select(x => x.ToString("x2")).ToArray()); //covert the byte[](packet) to hex string
string __ascii = AsciiToString(data); //convert the byte[](packet) to ASCII
if (encrypted) FormMain.PFA(form => form.listViewAnalyzer.Items.Add("S<-C [ENCRYPTED] Blowfishkey = 0xFF"));
else FormMain.PFA(form => form.listViewAnalyzer.Items.Add("S<-C"));
ListViewItem item = new ListViewItem(__str); //create new item and place the packet as hex string
item.SubItems.Add(__ascii); //add the ascii variant as substring
FormMain.PFA(form => form.listViewAnalyzer.Items.Add(item)); //add the item
它必须是禁止添加超过x行的文本的属性,但我看不到它。
答案 0 :(得分:1)
列表视图将包含所有文本,如果文本太长或有多行,则无法查看。
Outlook和数据包嗅探器之类的东西经常工作的方式是listview附带一个文本框或“预览”窗口。您可以更改UI,以便在列表视图中选择项目可在Outlook样式预览窗格中显示该项目的完整详细信息。然后你可以有一个大的多行文本框和你想要的任何东西。我经常通过在ListViewItem.Tag
属性中放置一个对象来做到这一点,这样我就可以在UI中检索它并在ListView.SelectedIndexChanged
事件触发时显示在预览中。
或者,预览可以在双击时弹出的对话框中。实际上,将预览用户界面设为UserControl
,然后就可以同时执行这两项操作!
答案 1 :(得分:0)
listview仅显示前15-20个字符:\
也许你需要让列更宽?
它必须是禁止添加超过x行的文本的属性,但我看不到它。
列表视图项不包装文本,因此从技术上讲,它们禁止包含多行的文本