小小小纯洁 2019-04-09 00:44 采纳率: 100%
浏览 860
已采纳

C# ListView 详细信息视图空白

winform
运行程序后Listview有数据,但是切换到详细信息视图就空白了,其他视图全都正常,不知道是什么原因?
数据全都没问题的

链接:https://pan.baidu.com/s/1fR4isB2wspIO7ybBTxSwjw
提取码:lno6
项目我放在了百度, 各位大佬帮我看一下

namespace BookMarksMessages
{
    public partial class Root : Form
    {
        public Root()
        {
            InitializeComponent();

            TreeNode treeNode1 = new TreeNode("根目录");
            treeNode1.Text = "根目录";
            Directory.Nodes.AddRange(new TreeNode[] {
            treeNode1});

            //BookMarksList.GridLines = true;//显示行与行之间的分隔线
            //BookMarksList.FullRowSelect = true;//要选择就是一行
        }

        private void Under_Development_Click(object sender, EventArgs e)
        {
            MessageBox.Show("此功能正在开发中...\n敬请期待","开发中...",0);

        }

        private void List_Switch(object sender, EventArgs e)
        {
            string view = (sender as ToolStripMenuItem).Name.ToString();
            this.BookMarksList.View = (View)Enum.Parse(typeof(View), view);
        }

        private void ExportToHTML_Click(object sender, EventArgs e)
        {
            SaveFileDialog saveFile = new SaveFileDialog();
            saveFile.Filter = "所有文件(*.*)|*.*|HTML文件(*.html)|*.html";
            //保存时为之前的目录
            saveFile.RestoreDirectory = true;
            //保存文件对话框的默认保存类型,默认索引从1开始
            saveFile.FilterIndex = 2;
            if (saveFile.ShowDialog() == DialogResult.OK) {
                try
                {
                    FileStream file = new FileStream(saveFile.FileName,FileMode.Create,FileAccess.Write,FileShare.Write);
                    string str = "测试文本";
                    //字符串转byte[]
                    byte[] bytes = new UTF8Encoding(true).GetBytes(str);
                    //写入字符串
                    file.Write(bytes, 0, bytes.Length);
                    file.Close();
                    MessageBox.Show("保存成功!");
                }
                catch (Exception ex) {
                    MessageBox.Show("文件保存错误:\n" + ex);
                }
            }

        }

        private void ImportFromHTML_Click(object sender, EventArgs e)
        {
            OpenFileDialog openFile = new OpenFileDialog();
            //设定只能打开HTML文件,文件类型不用加()不然会出错
            openFile.Filter = "HTML文件(*.html)|*.html";
            //打开时为之前的目录
            openFile.RestoreDirectory = true;
            if (openFile.ShowDialog() == DialogResult.OK) {
                try
                {
                    //打开文件,参数列表: 文件名,打开模式,打开权限,其他可以访问此文件的权限
                    FileStream file = File.Open(openFile.FileName, FileMode.Open, FileAccess.Read, FileShare.Read);
                    //创建读取文件流实例,参数为: 已打开的文件流,编码方式,一般为默认(操作系统当前的编码)
                    StreamReader sr = new StreamReader(file, Encoding.Default);
                    //读取文件并保存到str字符串
                    string str = sr.ReadToEnd();
                    HtmlWeb htmlWeb = new HtmlWeb();
                    HtmlAgilityPack.HtmlDocument document = new HtmlAgilityPack.HtmlDocument();
                    //document.Text获取内容
                    document.LoadHtml(str);
                    //分别用xpath和正则获取内容

                    //练习
                    #region 正则
                    //Regex reg = new Regex("HREF=\"([^\"]+)\"");
                    //MatchCollection result = reg.Matches(document.Text);
                    //string href = "";
                    //foreach (Match m in result)
                    //{
                    //  reg = new Regex("\".+\"");
                    //  Match a = reg.Match(m.ToString());
                    //  href = href + a.ToString() + Environment.NewLine;
                    //}
                    //reg = new Regex("[^\"]+");
                    //result = reg.Matches(href);
                    //string href1 = "";
                    //foreach (Match m in result) {
                    //  href1 = href1 + m.ToString() + Environment.NewLine;
                    //}
                    #endregion 

                    #region xpath
                    HtmlNodeCollection htmlNodes = document.DocumentNode.SelectNodes("//a[@href]");
                    if (htmlNodes != null) {
                        BookMarksList.Clear();
                        foreach (HtmlNode n in htmlNodes) {
                            HtmlAttribute hrefAtt = n.Attributes["href"];
                            ListViewItem item = new ListViewItem(new string[] {
                                n.InnerText.Trim(),
                                hrefAtt.Value
                            });
                            BookMarksList.Items.Add(item);
                        }
                    }
                    #endregion
                    //关闭读取文件流
                    sr.Close();
                    //关闭打开文件流
                    file.Close();
                }
                catch (Exception ex){//错误处理
                    MessageBox.Show("文件打开错误:\n"+ex.ToString());
                }
            }


        }
    }
}
  • 写回答

2条回答

  • 小小小纯洁 2019-05-04 20:46
    关注

    解决了,列表头要添加完数据后手动添加

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料