如何使用循环

时间:2015-09-08 15:57:02

标签: c# listview

所以我对如何解决我的问题有所了解,但我需要更短的代码

我有listlist和imagelist。

每次listview项目选择索引更改 label1.text也将更改或更新

这是我的代码

if (listView1.Items[0].Selected == true)
{
    label1.Text = "Number1";
}
if (listView1.Items[1].Selected == true)
{
    label1.Text = "Number2";
}

我试着询问是否有办法利用循环来缩短代码。

4 个答案:

答案 0 :(得分:2)

如果您使用的是ListView' ItemSelectionChanged事件,那么您只需:

private void listView1_ItemSelectionChanged(object sender, ListViewItemSelectionChangedEventArgs e) 
{
   label1.Text = e.Item.Text;
}

但如果ListView的{​​{1}}属性设置为MultiSelect,则需要更复杂的代码。

e.g。

true

如果您需要其位置,可以使用private void listView1_ItemSelectionChanged(object sender, ListViewItemSelectionChangedEventArgs e) { if (listView1.SelectedItems.Count > 0) { label1.Text = listView1.SelectedItems[0]; } } 的{​​{1}}属性。

答案 1 :(得分:0)

要显示所选项目,您可以尝试此

$scope.user = {
    age: {
        display: "Age",
        val: "21" 
    },
    firstName: {
        display: "First Name",
        val: "John" 
    },
    lastName: {
        display: "Last Name",
        val: "Smith" 
    },
}

自定义文字

<tr ng-repeat = "(key, value) in user">
    <td ng-model = "user[key].display"></td>
    <td ng-model = "user[key].val"></td>
</tr>

答案 2 :(得分:0)

您有两个主要选项,forforeachForeach可能更具可读性,但您无法获取索引,而for可读性较差但有索引。

int i = 1;
foreach (var item in listView1.Items) {
    if (item.Selected == true) {
        label1.Text = "Number" + i;
    }
    i++;
}

//OR DO THIS

for (int i = 1; i <= listView1.Items.Length; i++) {
    if (item.Selected == true) {
        label1.Text = "Number" + i;
    }
}

答案 3 :(得分:0)

您还可以在列表视图上创建隐藏列,这将是您的标签文本,然后您可以执行以下操作

你会把它放在foreach循环中,例如;

foreach(ListViewItem item in ListView1)
{
   label1.Text = item.HiddenField;
}