逆风飞翔 发表于 2015-11-2 13:19:59

C#listview控件填充数据出问题


每一行数据都向右偏离了一个列。
部分代码如下:
            cmd.CommandText = "SELECT * FROM 图书目录表 ";
            sdr = cmd.ExecuteReader();

            ListViewItem lv;
            ListViewItem.ListViewSubItem lvs;
            //载入分类信息到listview
            while (sdr.Read())
            {
               #region
                lv = new ListViewItem();
                lvs = new ListViewItem.ListViewSubItem();
                lvs.Text = (string)sdr;
                lv.SubItems.Add(lvs);
                lvs = new ListViewItem.ListViewSubItem();
                lvs.Text = (string)sdr;
                lv.SubItems.Add(lvs);      
                lvs = new ListViewItem.ListViewSubItem();
                lvs.Text = (string)sdr;
                lv.SubItems.Add(lvs);
                lvs = new ListViewItem.ListViewSubItem();
                lvs.Text = (string)sdr;
                lv.SubItems.Add(lvs);
                lvs = new ListViewItem.ListViewSubItem();
                lvs.Text = (Convert.ToDecimal(sdr)).ToString();
                lv.SubItems.Add(lvs);      
                lvs = new ListViewItem.ListViewSubItem();
                lvs.Text = (string)sdr["出版社"];
                lv.SubItems.Add(lvs);   
                listView1.Items.Add(lv);
                #endregion
            }

listview设置如下:
this.listView1.Dock = System.Windows.Forms.DockStyle.Fill;
            this.listView1.FullRowSelect = true;
            this.listView1.GridLines = true;
            this.listView1.Location = new System.Drawing.Point(3, 17);
            this.listView1.Name = "listView1";
            this.listView1.Size = new System.Drawing.Size(417, 303);
            this.listView1.TabIndex = 0;
            this.listView1.UseCompatibleStateImageBehavior = false;
            this.listView1.View = System.Windows.Forms.View.Details;


lika 发表于 2015-11-10 22:14:37

可以试试这种 赋值方法

ListViewItem lvi = new ListViewItem(dr["StudentName"].ToString());//第一列
                        //2、各列赋值
                        lvi.SubItems.Add(dr["Sex"].ToString());
                        lvi.SubItems.Add(dr["LoginPwd"].ToString());
                        lvi.SubItems.Add(dr["Address"].ToString());
                        lvi.Tag = dr["StudentNo"].ToString();
                        //3、将赋值后的ListViewItem加入ListView
                        this.lvStudents.Items.Add(lvi);
页: [1]
查看完整版本: C#listview控件填充数据出问题