在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。在向表里面添加内容的时候,第一个用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;
}
本来比较规范的办法就是new ListViewItem 因为第一个是索引,后面的是内容,当然要有所区别了
第二个问题是为了防止没有count时,
this.textBox1.Text=this.listView1.SelectedItems[0].SubItems[0].Text;出错
当然,这里取第一个时,应该这样写更好
textBox1.Text = listView1.SelectedItems[0].Text; //不要的东西就不要乱加!
listview可以用来呈现数据库中的表,但是实际上它的subitem是有主次之分的。subitem[0]是主,其余的都是次。把listview想成文件夹浏览器就很容易理解它们的区别了,有时候我们采用列表方式浏览,有时采用详细,subitem[0]就是始终呈现的文件名,而其他的subitem就是诸如文件大小,改写时间之类的属性。两种不同的Add方式正好体现了它们的主次关系。2
若没有选中的文件,强行取选中文件的文件名,是会出错的。if正是为了防止这种异常。