如何将大文本添加到listview(详细信息)项目?

时间:2009-05-02 07:24:02

标签: c# winforms

我正在编写一个分析器,它显示特定程序的数据包。有些数据包非常大,列表视图只显示前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行的文本的属性,但我看不到它。

2 个答案:

答案 0 :(得分:1)

列表视图将包含所有文本,如果文本太长或有多行,则无法查看

Outlook和数据包嗅探器之类的东西经常工作的方式是listview附带一个文本框或“预览”窗口。您可以更改UI,以便在列表视图中选择项目可在Outlook样式预览窗格中显示该项目的完整详细信息。然后你可以有一个大的多行文本框和你想要的任何东西。我经常通过在ListViewItem.Tag属性中放置一个对象来做到这一点,这样我就可以在UI中检索它并在ListView.SelectedIndexChanged事件触发时显示在预览中。

或者,预览可以在双击时弹出的对话框中。实际上,将预览用户界面设为UserControl,然后就可以同时执行这两项操作!

答案 1 :(得分:0)

  

listview仅显示前15-20个字符:\

也许你需要让列更宽?

  

它必须是禁止添加超过x行的文本的属性,但我看不到它。

列表视图项不包装文本,因此从技术上讲,它们禁止包含多行的文本