ListView(WinCE C#)消失的第一列

来源:互联网 发布:延安农村淘宝招聘信息 编辑:程序博客网 时间:2024/05/16 10:19

2014年3月1日星期六    北京海淀五路居    晴

VS 2008 .net compact framework v3.5

    昨天将别人的代码给跑起来了,今天动手进行微型手术。想要用ListView这个控件将DataSet对象里面的数据给显示一下,写了如下代码:

    //将DataSet绑定到ListView    public static void datasetBindingToListView(ListViewlistView) {        //获取DataSet,由于没用到数据库,自己构建了一个DataSet对象        DataSet ds = generateDataSetForTest();        DataTable dt = ds.Tables[0];  //取出DataSet里的表        //如果存在表的话,遍历表        if(dt!= null) {            foreach(DataRow dr in dt.Rows) {                ListViewItem lvi = new ListViewItem();   //定义ListView的一行                lvi.SubItems.Add(dr["serialNumber"].ToString());     //取序列号                //MessageBox.Show("serialNumber: " +dr["serialNumber"].ToString(),"Tip");                lvi.SubItems.Add(dr["materialCode"].ToString());     //取物料编码                lvi.SubItems.Add(dr["quantity"].ToString());         //取数量                lvi.SubItems.Add(dr["batch"].ToString());            //取批次                //加入一行到ListView                listView.Items.Add(lvi);            }        }    }

    运行结果如下,第一列莫名其妙的丢了,起初以为是构建DataSet对象的时候出了问题。打个断点,单步跟踪,数据好像没有问题。咋弄?

        

    为了更直观地找出结果,决定在图形设计界面,利用ListView控件的Items属性,手工添加数据来看一下。

   

    从界面显示的效果来看,问题出在我创建ListViewItem对象的时候,我不应该用如下方式创建

    ListViewItem lvi = new ListViewItem();

    而是应该用这样的方式创建实例:

    ListViewItem lvi = new ListViewItem(dr["serialNumber"].ToString());   //定义ListView的一行

    再次运行代码,界面显示即为我想要的结果。

                                                                  

   (注:今天刚刚打开VS,创建界面的时候,发现只有用户控件可用,其他所有控件均不可用(即使是公共控件,也变成了灰色,瘫痪罢工),吓了我一跳。还好,在控件处右击,选择“工具箱重置”,控件又活跃了。初步判断是昨天升级完项目留下的一点后遗症,万幸,万幸)



0 0
原创粉丝点击