在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;
}
解决方案 »
- c# winform tabcontrol 拖拽时如果捕获鼠标不在控件内的问题
- 每天一个设计模式(命令模式 -2011.4.21 星期四)期待提问和讨论
- 求救:在上传视频时,怎么加进度条??
- 判断本地连接是否断开
- 寻连接数据库方案
- ''附近有语法错误
- 问一道byte[]转换成字符串的问题
- C# web 中 为什么不能用System.Windows.Forms.Clipboard.SetDataObject("");
- 求助C1FlexGrid
- TCP/IP通讯
- 关于DataReader的问题
- 在主窗体里加了一个spliecontainer控件,挡住了子窗体,我想让子窗体显示在spliecontainer.panel上怎么解决?
本来比较规范的办法就是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正是为了防止这种异常。