1:
如图
"加经验值"按钮被按后我想让所有人的经验值都为100
我的做法是
foreach(ListViewItem i in listView1.Items){ i.SubItems[3].Text = "10"; }
但注意到这里有一个数字3
要是以后我把 经验值这一栏移动一下 这里应该写的数字就不应该是3了
我想达到的效果是
i.SubItems["经验值"].Text = "10";
直接这样写好像不行
貌似只能先for循环columns找出"经验值"在哪一栏确定出数字
这种方法效率如何? 评价一下.
2:
i.SubItems 所属的类是 ListViewItem.ListViewSubItemCollection
它重载了运算符[]
Item[Int32] 获取或设置该集合内指定索引处的子项。 Item[String] 获取集合中具有指定键的项。
获取集合中具有指定键的项。这句话是什么意思能实现什么效果?ListViewItem.ListViewSubItemCollection的许多方法都提到键
如IndexOfKey removebykey等
键是指什么??
请给点例子说明这些方法使用以后的效果
3:
我使用MSDN2008 搜索 ListViewItem 类
只能找到一个ListViewItem类 但是这个ListViewItem类里面没有 SubItems属性(其实应该要有的!!!)
之后我又在ListViewItem后面输入.SubItems 就找到了SubItems属性
从该属性的页面 我找到一个超链接 点击该超链接 就回到了ListViewItem类
我发现前后2次的ListViewItem类的地址不一样{ms-help://MS.MSDNQTR.v90.chs/fxref_system.windows.forms/html/7b2a9964-d0fc-afee-0838-495793576452.htm 就是这些地址 是不一样的}
而且此次出现的ListViewItem类有SubItems属性了
这是在坑爹吗
有好办法解决?
基础悬赏粉50 视回答情况 追加一定分数
ms-help://MS.MSDNQTR.v90.chs/fxref_system.web.extensions/html/4130c3f5-5a02-42ef-d62b-ba1c09a3e330.htm
没有subitems属性
ms-help://MS.MSDNQTR.v90.chs/fxref_system.windows.forms/html/86658076-e705-894a-55c0-16907541a2ce.htm
有subitems属性
第一个可以直接通过MSDN找到 第二个不行
貌似没有直接根据列名来索引的方法,就你那种先查找位置的方法是比较好的。不然就使用datagridview好了。
所谓的键你就看做是下标好了。
把你说的没有这个属性的msdn的链接发出来看看。
提问补充了 你再看看
顺便第二条你可以说得清楚一些吗
什么叫做当做下标
弄些例子演示一下
麻烦你贴msdn官网的链接,你那个本地链接别人打不开。
连下标都不知道?数组的下标。
再看看哈希表的概念吧,就是键和值。
每一项的Name我也试着改过了 也不对
因为每一项的Name可以重复 这样的话显然不可能唯一标识
那是因为你没有为Name赋值,不是所有都一样的,你断点看看你的那个Name属性是不是变成了“”
代码这么写,就是在动态加数据之前,给他赋值name属性
这个代码就是说明,根据Name可以访问的到
foreach (ListViewItem i in listView1.Items)怎样使他有name值,就是你在动态添加部分的工作了
关于C#中ListView中某列无法显示的问题
如果没有报错,就是被绑定的数据集里面已经有数据了,你看看没有显示的那一列的数据类型和你的listview得指定类型是不是相容的,最简单的例子:比如整数型就不可以显示在单选框列里面
C# listview 计数的问题
循环遍历该列的值啊for(int i =0;i<listview.Items.Count;i++){ listview.Items[i].SubItems[索引].Text; }
关于C#中ListView不显示数据的问题
你的ls_taskNo是 new出来的 虽然设置了visible=true 但是并没有显示在界面上(需要一个父窗体或容器)如果你已经在界面上添加了此控件 建议删除ls_taskNo=new ListView();此行 而且下面的EndUpdate写错成BeginUpdate了
关于C#中ListView不显示数据的问题
你的ls_taskNo是 new出来的 虽然设置了visible=true 但是并没有显示在界面上(需要一个父窗体或容器)如果你已经在界面上添加了此控件 建议删除ls_taskNo=new ListView();此行 而且下面的EndUpdate写错成BeginUpdate了
C#问一下listView复制的问题
ListViewItem item = new ListViewItem();这是新建一个行对象,吧遍历的ListView的行赋给这个行对象。再吧这个行对象插入到listView1中。。 这里其实是在添加行,由于添加的数据都是出自同一个listView1,所有也说是复制行把。。
C# listview 取得点击的值问题
很简单,用下面这句话就可以了,测试过的 取得选中行的第一列时:string str = listView1.FocusedItem.Text;或者 string str = listView1.FocusedItem.SubItems[0].Text;取得需中行的第二列时:string str = listView1.FocusedItem.SubItems[1].Text;依次类推......
c#listViewItem问题
\/\/先声名一个listViewItem对象 ListViewItem lstItem = new ListViewItem();\/\/清空子项 lstItem.SubItems.Clear();\/\/加入各个列值 lstItem.SubItems[0].Text ="张三";lstItem.SubItems.Add("广东");lstItem.SubItems.Add("男");\/\/最后将这个listViewItem对象加入 \/\/到listView控件里 this....
C# ListView 获取隐藏列数据问题
在ListView的属性中的Colums属性中,没有直接隐藏该列的属性,如果你要隐藏该列,在代码中可以这样写:\/\/创建一个ListView项 ListViewItem item = new ListViewItem();\/\/将(你要隐藏的列)( 假如你要隐藏StudentID这列 )放在Tag中 item.Tag = (int)dataReader["StudentID"];就OK了,要用它,...
C# listview空间去除水平滚动条的问题
ListView 在点击控件的时候,也会发生重绘事件,所以,去除listView的横向滚动条,通过外部的API消息,很难完善,即使去掉了,那么竖向的滚动条,在自绘的时候,不能判定内容的高度,就会出差偏差了。解决这个问题,需要自己扩展ListView,重写这个控件的消息处理函数 --- 在你的项目里,添加一个 “类”,...
c#listview.设置了列,为何还是空白?
控件要打开就显示你的列表头,就得把初始化表头的方法放在加载(onload)或者init...里面去,打开就有显示了 不行留言 from onload(便利数据库同理)listview1.view=view.detils;listview1.column.add("1");listview1.column.add("2");listview1.column.add("3");或者initial..下添加上面的代码 ...