[英]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.