搞不懂为何只显示第一列的内容。不光是数据只显示第一列,用Columns.Add方法添加了几个列名,也只显示第一列的列名。

解决方案 »

  1.   

    是不是你在一个循环中add的,然后后面又clear了?
      

  2.   

    你可以添加的都是同一个对象吧?你需要new一个新的对象然后放进去,拿源代码上来看看吧
      

  3.   

    源码如下:
    //窗口名称为AllContacts。数据从Xml文件中读取。
     private void AllContacts_Load(object sender, EventArgs e)
            {
                string filename = Application.StartupPath + "\\contacts.xml";
                XmlDocument xmlDoc = new XmlDocument();
                try
                {
                    xmlDoc.Load(filename);
                    lmInfo_Click(xmlDoc);
                }
                catch (System.IO.FileNotFoundException)
                {
                    string mStr = "<contacts>"                  
                                  + "</contacts>";
                    xmlDoc.LoadXml(mStr);
                    xmlDoc.Save(filename);
                }
            }
            private void lmInfo_Click(XmlDocument xmlDoc)
            {
                 //listview的名称为listViewAllContactsInfo。
                listViewAllContactsInfo.Clear();           
                XmlNodeList nodes = xmlDoc.SelectNodes("contacts/contact");
                foreach (XmlNode node in nodes)
                {
                    XmlElement xe = (XmlElement)node;
                    string userName = xe.ChildNodes[0].InnerText;
                    string userClass = xe.ChildNodes[4].InnerText;
                    string userPhoneNumber = xe.ChildNodes[6].InnerText;
                    string userMobileNumber = xe.ChildNodes[5].InnerText;
                    string userQqNumber = xe.ChildNodes[7].InnerText;
                    string userEmail = xe.ChildNodes[8].InnerText;
                    string userAddress = xe.ChildNodes[4].InnerText;
                   // ListViewItem str = new ListViewItem(new string[]{userName,
                    
    // userClass,userPhoneNumber,userMobileNumber,userQqNumber,userEmail,userAddress});
                    ListViewItem str = new ListViewItem(userName);
                    str.SubItems.Add(userClass);
                    str.SubItems.Add(userPhoneNumber);
                    str.SubItems.Add(userMobileNumber);
                    str.SubItems.Add(userQqNumber);
                    str.SubItems.Add(userEmail);
                    str.SubItems.Add(userAddress);
                    listViewAllContactsInfo.Columns.Add("userName", -2, HorizontalAlignment.Left);
                    listViewAllContactsInfo.Columns.Add("userClass", -2, HorizontalAlignment.Left);
               listViewAllContactsInfo.Columns.Add("userPhoneNumber", -2, HorizontalAlignment.Left);
              listViewAllContactsInfo.Columns.Add("userMobileNumber", -2, HorizontalAlignment.Left);
              listViewAllContactsInfo.Columns.Add("userQqNumber", -2, HorizontalAlignment.Left);
              listViewAllContactsInfo.Columns.Add("userEmail", -2, HorizontalAlignment.Left);
              listViewAllContactsInfo.Columns.Add("userAddress", -2, HorizontalAlignment.Left);          listViewAllContactsInfo.Items.Add(str);
                   
                }
              }
      

  4.   

    让我们先添加Columns再添加数据好不好?
      

  5.   

    而且你的宽度能不能设置的大一点呢?listViewAllContactsInfo.Columns.Add("userName", -2, HorizontalAlignment.Left);
      

  6.   

    后添加列名和自动宽度设置都是参照msdn上的例程写的。
      

  7.   

    我的XMl文件里存储了两组数据,两个userName分别是”Fan”和“11”。在将view的属性设置为Details之前,只显示一行数据,fan后面紧跟着11。在将view的属性设置为Details之后,显示两行数据,但是只有一列,分别是Fan和11。
      

  8.   

     private void lmInfo_Click(XmlDocument xmlDoc)
            {
                 //listview的名称为listViewAllContactsInfo。
                listViewAllContactsInfo.Clear();           
                XmlNodeList nodes = xmlDoc.SelectNodes("contacts/contact");
                foreach (XmlNode node in nodes)
                {
                    XmlElement xe = (XmlElement)node;
                    string userName = xe.ChildNodes[0].InnerText;
                    string userClass = xe.ChildNodes[4].InnerText;
                    string userPhoneNumber = xe.ChildNodes[6].InnerText;
                    string userMobileNumber = xe.ChildNodes[5].InnerText;
                    string userQqNumber = xe.ChildNodes[7].InnerText;
                    string userEmail = xe.ChildNodes[8].InnerText;
                    string userAddress = xe.ChildNodes[4].InnerText;
                   // ListViewItem str = new ListViewItem(new string[]{userName,
                    
    // userClass,userPhoneNumber,userMobileNumber,userQqNumber,userEmail,userAddress});
                    listViewAllContactsInfo.View = View.Details;//你可能没有这个。
                    ListViewItem str = new ListViewItem(userName);
                    str.SubItems.Add(userClass);
                    str.SubItems.Add(userPhoneNumber);
                    str.SubItems.Add(userMobileNumber);
                    str.SubItems.Add(userQqNumber);
                    str.SubItems.Add(userEmail);
                    str.SubItems.Add(userAddress);
                    listViewAllContactsInfo.Columns.Add("userName", 200, HorizontalAlignment.Left); //-2太小看不见东西改成20以上
                    listViewAllContactsInfo.Columns.Add("userClass", -2, HorizontalAlignment.Left);
               listViewAllContactsInfo.Columns.Add("userPhoneNumber", -2, HorizontalAlignment.Left);
              listViewAllContactsInfo.Columns.Add("userMobileNumber", -2, HorizontalAlignment.Left);
              listViewAllContactsInfo.Columns.Add("userQqNumber", -2, HorizontalAlignment.Left);
              listViewAllContactsInfo.Columns.Add("userEmail", -2, HorizontalAlignment.Left);
              listViewAllContactsInfo.Columns.Add("userAddress", -2, HorizontalAlignment.Left);          listViewAllContactsInfo.Items.Add(str);
                   
                }
              }