热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

listview如何添加行和列,以及各列宽度自适应问题

过年好,我这个问题已经发过三次帖子了,都未能解决问题。大过年的,只要回复我都给分。。。。我想补充一下我的需求:我在下面的代码中运行要么是结果不对,要么是出错,请大神帮我指点,我希望的是您能
过年好, 我这个问题已经发过三次帖子了,都未能解决问题。大过年的,只要回复我都给分。。。。

我想补充一下我的需求:我在下面的代码中运行要么是结果不对,要么是出错,请大神帮我指点 我希望的是您能告诉我的代码的问题在哪里,并在我的代码基础上给出对的代码!

不需要一句话带过的,大过年的我不给分也不好,但是我的分也快用完了,请您谅解一下!

       listView1.View = View.Details;
            listView1.View = View.Tile;   
            listView1.GridLines = true;  
            listView1.FullRowSelect = true;    
            listView1.Scrollable = true;        
            listView1.MultiSelect = true; 
            listView1.FullRowSelect = true;

            ListViewItem item1 = new ListViewItem("item1", 0); 
            item1.SubItems.Clear();
            item1.SubItems[0].Text = textBox6.Text + textBox6.Text; //其中textBox6.Text 等于“平均气温21.99摄氏度”
       // item1.SubItems[1].Text = textBox6.Text+ textBox6.Tex;
            listView1.Columns.Add("Column1",-1);
            listView1.Items.Add(item1);

            ListViewItem item2 = new ListViewItem("item2", 1);
            item2.SubItems.Clear();
            item2.SubItems[0].Text = textBox6.Text + textBox6.Text;
            // item2.SubItems[1].Text = textBox6.Text+ textBox6.Tex;
           listView1.Items.Add(item2);

           运行结果如下,似乎并没有起到自适应的效果。



另外,我希望在两行中分别输出,但是输出结果总是在第一行,很是纳闷。
如果我把上述代码中
 // item1.SubItems[1].Text = textBox6.Text+ textBox6.Tex;
  // item2.SubItems[1].Text = textBox6.Text+ textBox6.Tex;
两行的注释去掉,运行时则出现以下错误,还请您指点迷津:



程序的目的的是能两行两列输出,且每个单元格的宽度是自适应的。


我希望的是您能告诉我的代码的问题在哪里,并在我的代码基础上给出对的代码![/color]


         

7 个解决方案

#1


再补充一句,我想用的是用行和列的索引号来给对应的单元赋值,不希望用到行名和列名!

#2


首先必须
listView1.View = View.Details;

然后 你要显示多少列数据,就必须添加多少列,这里是添加三列
 listView1.Columns.Add("Column1", -1);
 listView1.Columns.Add("Column2", -1);
 listView1.Columns.Add("Column3", -1);

然后你要显示多少行数据,就要添加多少行,当然也可以使用循环来实现

var item1=  listView1.Items.Add("平均气温21.99摄氏度");//这里是添加一个子项,也就是新的一行,里边的文本就是这一行的首列文本
item1.SubItems.Add("3253464");//为这个子项加入后续文本,也就是第二列和第三列的文本
item1.SubItems.Add("87654326768765");

var item2 = listView1.Items.Add("平均气温25.12摄氏度");//第二行的数据
item2.SubItems.Add("111");
item2.SubItems.Add("wfregrhntgfd");

这里是运行结果

#3


为listView新增数据是可以不使用到行号列号的,只有修改的时候需要

引用
如果我把上述代码中
 // item1.SubItems[1].Text = textBox6.Text+ textBox6.Tex;
  // item2.SubItems[1].Text = textBox6.Text+ textBox6.Tex;
两行的注释去掉,运行时则出现以下错误


SubItems必须先Add才可以修改,Add之前,SubItems[1]是不存在的,所以会出现参数越界错误

如果你使用了我上面的代码,因为我已经Add了2个SubItem
那么
 item1.SubItems[1].Text = textBox6.Text+ textBox6.Text;就不会报错了

#4


引用 3 楼 stherix 的回复:
为listView新增数据是可以不使用到行号列号的,只有修改的时候需要

引用
如果我把上述代码中
 // item1.SubItems[1].Text = textBox6.Text+ textBox6.Tex;
  // item2.SubItems[1].Text = textBox6.Text+ textBox6.Tex;
两行的注释去掉,运行时则出现以下错误


SubItems必须先Add才可以修改,Add之前,SubItems[1]是不存在的,所以会出现参数越界错误

如果你使用了我上面的代码,因为我已经Add了2个SubItem
那么
 item1.SubItems[1].Text = textBox6.Text+ textBox6.Text;就不会报错了


拜谢大神的及时回复,受教了,祝您新春快乐!

#5


引用 3 楼 stherix 的回复:
为listView新增数据是可以不使用到行号列号的,只有修改的时候需要

引用
如果我把上述代码中
 // item1.SubItems[1].Text = textBox6.Text+ textBox6.Tex;
  // item2.SubItems[1].Text = textBox6.Text+ textBox6.Tex;
两行的注释去掉,运行时则出现以下错误


SubItems必须先Add才可以修改,Add之前,SubItems[1]是不存在的,所以会出现参数越界错误

如果你使用了我上面的代码,因为我已经Add了2个SubItem
那么
 item1.SubItems[1].Text = textBox6.Text+ textBox6.Text;就不会报错了



大神好,我成功再现了您的程序!再次感谢!
但是还有一个问题请教,在我电脑上运行后出现窗体显示变得很窄的情况,需要用鼠标拉动才行,您那边有类似的情况吗?
没有设置列宽前是没有问题的。

#6


引用 5 楼 zhuhuanlai 的回复:
Quote: 引用 3 楼 stherix 的回复:

为listView新增数据是可以不使用到行号列号的,只有修改的时候需要

引用
如果我把上述代码中
 // item1.SubItems[1].Text = textBox6.Text+ textBox6.Tex;
  // item2.SubItems[1].Text = textBox6.Text+ textBox6.Tex;
两行的注释去掉,运行时则出现以下错误


SubItems必须先Add才可以修改,Add之前,SubItems[1]是不存在的,所以会出现参数越界错误

如果你使用了我上面的代码,因为我已经Add了2个SubItem
那么
 item1.SubItems[1].Text = textBox6.Text+ textBox6.Text;就不会报错了



大神好,我成功再现了您的程序!再次感谢!
但是还有一个问题请教,在我电脑上运行后出现窗体显示变得很窄的情况,需要用鼠标拉动才行,您那边有类似的情况吗?
没有设置列宽前是没有问题的。


应该不会出现这种情况

你看下是否其他地方修改了Width/this.Width
或者是是否在设计器里改变了窗体的宽度

#7


引用 6 楼 stherix 的回复:
Quote: 引用 5 楼 zhuhuanlai 的回复:

Quote: 引用 3 楼 stherix 的回复:

为listView新增数据是可以不使用到行号列号的,只有修改的时候需要

引用
如果我把上述代码中
 // item1.SubItems[1].Text = textBox6.Text+ textBox6.Tex;
  // item2.SubItems[1].Text = textBox6.Text+ textBox6.Tex;
两行的注释去掉,运行时则出现以下错误


SubItems必须先Add才可以修改,Add之前,SubItems[1]是不存在的,所以会出现参数越界错误

如果你使用了我上面的代码,因为我已经Add了2个SubItem
那么
 item1.SubItems[1].Text = textBox6.Text+ textBox6.Text;就不会报错了



大神好,我成功再现了您的程序!再次感谢!
但是还有一个问题请教,在我电脑上运行后出现窗体显示变得很窄的情况,需要用鼠标拉动才行,您那边有类似的情况吗?
没有设置列宽前是没有问题的。


应该不会出现这种情况

你看下是否其他地方修改了Width/this.Width
或者是是否在设计器里改变了窗体的宽度


引用 6 楼 stherix 的回复:
Quote: 引用 5 楼 zhuhuanlai 的回复:

Quote: 引用 3 楼 stherix 的回复:

为listView新增数据是可以不使用到行号列号的,只有修改的时候需要

引用
如果我把上述代码中
 // item1.SubItems[1].Text = textBox6.Text+ textBox6.Tex;
  // item2.SubItems[1].Text = textBox6.Text+ textBox6.Tex;
两行的注释去掉,运行时则出现以下错误


SubItems必须先Add才可以修改,Add之前,SubItems[1]是不存在的,所以会出现参数越界错误

如果你使用了我上面的代码,因为我已经Add了2个SubItem
那么
 item1.SubItems[1].Text = textBox6.Text+ textBox6.Text;就不会报错了



大神好,我成功再现了您的程序!再次感谢!
但是还有一个问题请教,在我电脑上运行后出现窗体显示变得很窄的情况,需要用鼠标拉动才行,您那边有类似的情况吗?
没有设置列宽前是没有问题的。


应该不会出现这种情况

你看下是否其他地方修改了Width/this.Width
或者是是否在设计器里改变了窗体的宽度



引用 6 楼 stherix 的回复:
Quote: 引用 5 楼 zhuhuanlai 的回复:

Quote: 引用 3 楼 stherix 的回复:

为listView新增数据是可以不使用到行号列号的,只有修改的时候需要

引用
如果我把上述代码中
 // item1.SubItems[1].Text = textBox6.Text+ textBox6.Tex;
  // item2.SubItems[1].Text = textBox6.Text+ textBox6.Tex;
两行的注释去掉,运行时则出现以下错误


SubItems必须先Add才可以修改,Add之前,SubItems[1]是不存在的,所以会出现参数越界错误

如果你使用了我上面的代码,因为我已经Add了2个SubItem
那么
 item1.SubItems[1].Text = textBox6.Text+ textBox6.Text;就不会报错了



大神好,我成功再现了您的程序!再次感谢!
但是还有一个问题请教,在我电脑上运行后出现窗体显示变得很窄的情况,需要用鼠标拉动才行,您那边有类似的情况吗?
没有设置列宽前是没有问题的。


应该不会出现这种情况

你看下是否其他地方修改了Width/this.Width
或者是是否在设计器里改变了窗体的宽度




引用 6 楼 stherix 的回复:
Quote: 引用 5 楼 zhuhuanlai 的回复:

Quote: 引用 3 楼 stherix 的回复:

为listView新增数据是可以不使用到行号列号的,只有修改的时候需要

引用
如果我把上述代码中
 // item1.SubItems[1].Text = textBox6.Text+ textBox6.Tex;
  // item2.SubItems[1].Text = textBox6.Text+ textBox6.Tex;
两行的注释去掉,运行时则出现以下错误


SubItems必须先Add才可以修改,Add之前,SubItems[1]是不存在的,所以会出现参数越界错误

如果你使用了我上面的代码,因为我已经Add了2个SubItem
那么
 item1.SubItems[1].Text = textBox6.Text+ textBox6.Text;就不会报错了



大神好,我成功再现了您的程序!再次感谢!
但是还有一个问题请教,在我电脑上运行后出现窗体显示变得很窄的情况,需要用鼠标拉动才行,您那边有类似的情况吗?
没有设置列宽前是没有问题的。


应该不会出现这种情况

你看下是否其他地方修改了Width/this.Width
或者是是否在设计器里改变了窗体的宽度

我窗体宽度为780,高度为434,应该没有改变的。


推荐阅读
author-avatar
玫瑰编辑1轶事
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有