在winform中有两个比较奇怪的地方
1。在向表里面添加内容的时候,第一个用this.listView.SubItems[0].Text="string",后面都用
this.listView.SubItems.Add("string"),为什么要microsoft要这样提供给程序员。。难道是在玩我们(当然,对于这点我们可以在new一个ListViewItem里面直接添加,当他提供的前一种插入内容方式的确比较诡异)
2。还有就是我们在选中listView中的一行的时候,必须要加一个莫名奇妙的判断,我看了好久也没弄明白是什么意思,感觉是多余的,可去掉有没办法顺利运行,希望大家指教
if(this.listView1.SelectedItems.Count>0)    ///这个判断到底是什么意思,希望大家指教
{
    this.textBox1.Text=this.listView1.SelectedItems[0].SubItems[0].Text;
}

解决方案 »

  1.   

    楼主是不熟悉,所以说诡异
    本来比较规范的办法就是new ListViewItem 因为第一个是索引,后面的是内容,当然要有所区别了
    第二个问题是为了防止没有count时,
    this.textBox1.Text=this.listView1.SelectedItems[0].SubItems[0].Text;出错
    当然,这里取第一个时,应该这样写更好
    textBox1.Text = listView1.SelectedItems[0].Text; //不要的东西就不要乱加!
      

  2.   

    1
    listview可以用来呈现数据库中的表,但是实际上它的subitem是有主次之分的。subitem[0]是主,其余的都是次。把listview想成文件夹浏览器就很容易理解它们的区别了,有时候我们采用列表方式浏览,有时采用详细,subitem[0]就是始终呈现的文件名,而其他的subitem就是诸如文件大小,改写时间之类的属性。两种不同的Add方式正好体现了它们的主次关系。2
    若没有选中的文件,强行取选中文件的文件名,是会出错的。if正是为了防止这种异常。