[英]How to make DropDownList automatically be selected based on the Label.Text
[英]How to update a label.text for each listview item selected using looping
所以我对如何解决我的问题有一个想法,但我需要较短的代码
我有与imagelist的listview。
每次listview项目选择索引更改label1.text也会更改或更新
这是我的代码
if (listView1.Items[0].Selected == true)
{
label1.Text = "Number1";
}
if (listView1.Items[1].Selected == true)
{
label1.Text = "Number2";
}
我试图问是否有一种利用循环使代码简短的方法。
如果您正在使用ListView
的ItemSelectionChanged
事件,则可以简单地拥有:
private void listView1_ItemSelectionChanged(object sender, ListViewItemSelectionChangedEventArgs e)
{
label1.Text = e.Item.Text;
}
但是,如果ListView
的MultiSelect
属性设置为true
则将需要更复杂的代码。
例如
private void listView1_ItemSelectionChanged(object sender, ListViewItemSelectionChangedEventArgs e)
{
if (listView1.SelectedItems.Count > 0)
{
label1.Text = listView1.SelectedItems[0];
}
}
如果需要它的位置,可以使用ListViewItem
的Index
属性。
要显示所选项目,您可以尝试此操作
foreach (ListViewItem selectedItem in listView1.SelectedItems)
{
label1.Text = selectedItem.Text;
break; // remove it if you have multiple selection but you need thread as well with Thread.Sleep.
}
//OR
label1.Text = listView1.SelectedItems[0].Text;
对于自定义文字
var count = 1;
foreach (ListViewItem selectedItem in listView1.SelectedItems)
{
label1.Text = "Number" + count++;
break; // remove it if you have multiple selection but you need thread as well with Thread.Sleep.
}
您有两个主要选择, for
和foreach
。 Foreach
可能更具可读性,但您没有索引可使用,而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;
}
}
您还可以在列表视图上创建一个隐藏的列,这将是您的标签文本,然后可以执行以下操作
您可以将其放在foreach循环中,例如;
foreach(ListViewItem item in ListView1)
{
label1.Text = item.HiddenField;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.