C#中的listview的一个问题
1:如图"加经验值"按钮被按后我想让所有人的经验值都为100我的做法是foreach(ListViewItemiinlistView1.Items){i.SubItems...
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找到 第二个不行 展开
如图
"加经验值"按钮被按后我想让所有人的经验值都为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找到 第二个不行 展开
2个回答
展开全部
额,这个你理解错了一个概念
i.SubItems["经验值"].Text = "10";这一句可能不应该这么写
一般索引的键,是指这个对象的唯一属性,比如一个集合有三个对象,这三个对象在集合里面必须能区分出来,那区分出来的字段,就是这个键,即【】里面的string
显然,这个键,是所有subitems的每一项的Name属性的值,而不是Text的值。
i.SubItems["经验值"].Text = "10";这一句可能不应该这么写
一般索引的键,是指这个对象的唯一属性,比如一个集合有三个对象,这三个对象在集合里面必须能区分出来,那区分出来的字段,就是这个键,即【】里面的string
显然,这个键,是所有subitems的每一项的Name属性的值,而不是Text的值。
追问
每一项的Name我也试着改过了 也不对
因为每一项的Name可以重复 这样的话显然不可能唯一标识
追答
那是因为你没有为Name赋值,不是所有都一样的,你断点看看你的那个Name属性是不是变成了“”
代码这么写,就是在动态加数据之前,给他赋值name属性
这个代码就是说明,根据Name可以访问的到
foreach (ListViewItem i in listView1.Items)
{
i.SubItems[2].Name = "名称";
i.SubItems["名称"].Text = "10";
}
怎样使他有name值,就是你在动态添加部分的工作了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询