热门标签 | 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,应该没有改变的。


推荐阅读
  • C# ListView用法详解 很完整
    一、ListView类1、常用的基本属性:(1)FullRowSelect:设置是否行选择模式。(默认为false)提示&# ... [详细]
  • 这期内容当中小编将会给大家带来有关怎么在asp.net中获取ListView与gridview中当前行的行号,文章内容丰富且以专业的角度为大家分析和叙述, ... [详细]
  • 如何在Visual C#中使用ListView控件来展示数据记录
    如果要你在程序中显示数据库中的数据记录,你首先想用的显示工具肯定是DataGrid。当然用DataGrid显示数据记录是一种既常用又简单的方法。但是在程序控制方面,它却无法那么随心所欲。本文就是介绍另 ... [详细]
  • 关于改变ListView选中项的状态方法思路:无论使用哪一个适配器,只需要重写他的getView()方法即可原理:getView方法是用于把创建好的view交给listView用的,所以我们可 ... [详细]
  • 【Android开发】 ListView使用实战详解,你get到了嘛?
    【Android开发】ListView使用实战详解,你get到了嘛?-目录一、什么是ListView?二、ListView的简单用法三、ListView点击响应事件hel ... [详细]
  • [java]viewplaincopyprint?ListViewlistViewgetListView(); ... [详细]
  • 本文将深入探讨 Unreal Engine 4 (UE4) 中的距离场技术,包括其原理、实现细节以及在渲染中的应用。距离场技术在现代游戏引擎中用于提高光照和阴影的效果,尤其是在处理复杂几何形状时。文章将结合具体代码示例,帮助读者更好地理解和应用这一技术。 ... [详细]
  • WPF项目学习.一
    WPF项目搭建版权声明:本文为博主初学经验,未经博主允许不得转载。一、前言记录在学习与制作WPF过程中遇到的解决方案。使用MVVM的优点是数据和视图分离,双向绑定,低耦合,可重用行 ... [详细]
  • 在对WordPress Duplicator插件0.4.4版本的安全评估中,发现其存在跨站脚本(XSS)攻击漏洞。此漏洞可能被利用进行恶意操作,建议用户及时更新至最新版本以确保系统安全。测试方法仅限于安全研究和教学目的,使用时需自行承担风险。漏洞编号:HTB23162。 ... [详细]
  • 如题在ListView每个item的布局里面都有一个webView来加载内容因为内容含有文字和图片,但是很加载很慢,求大神帮忙解决 ... [详细]
  • 这个是listview的item布局,当在list中滚动时,每个item的高度会随机变化,导致显示混乱,多滚动几次高度又显示正常了,怎么回事呢?<?xmlversion1.0 ... [详细]
  • 现在做了一个ListView,里面的值是用cursor提取数据库的,现在想点击listview以后页面进行跳转,并且在新的activity里显示被点击的listview的数据,我的listview有很 ... [详细]
  • 在WPF中,我有一个绑定到字典(ListView)的InpLangList和一个具有boolean(Ch ... [详细]
  • ListView的显示和缓存机制总结来讲:需要才显示,显示完就被回收到缓冲池中。BaseAdapter构造方法要传一个context,要不要传list?不一定?传了好像也没用pub ... [详细]
  • ListView 应用5 - 数据库的增删改查及分页
    郁闷了好长一段时间,做了各种各样的修改,就是“删除”无法执行,罪魁祸首竟然是ListView控件中少设置了一个DataKeyNames属性,悲哀啊!defau ... [详细]
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社区 版权所有