我想获得列表框selecteindex上的数组元素。它还显示了找到的数组元素但是它不选择listbox
上数组的第一个元素Listbox = cbx_dekor_paneli
string[] dekordizisi;
void listedendekoral()
{
dekordizisi = Sipariş_Listesi_Güncelle.dekorgonder.ToString().Split(',');
for (int i = 0; i < dekordizisi.Count(); i++)
{
cbx_dekor_paneli.SelectedIndex =
cbx_dekor_paneli.FindString(dekordizisi[i].ToString());
//already tried that one
//cbx_dekor_paneli.SelectedItem = dekordizisi[i].ToString();
}
}
Listbox items add from mysql
void DB_dekor()
{
db.vtbaslat();
vtbaglan();
try
{
cbx_dekor_paneli.Items.Clear();
//dekorlar
MySqlCommand listegor = new MySqlCommand("select * from dekor order by dekor_id asc", db.baglanti);
MySqlDataReader liste = listegor.ExecuteReader();
while (liste.Read())
{
cbx_dekor_paneli.Items.Add(liste["dekor_kod"].ToString());
}
liste.Close();
listegor.Dispose();
}
catch (Exception hata)
{
MessageBox.Show(hata.Message);
}
}
更新
我在数据库上犯了一个错误。有些值有空格。我也喜欢选择模式:MultiSimple用那个代码求解
cbx_dekor_paneli.ClearSelected();
dekordizisi = Sipariş_Listesi_Güncelle.dekorgonder.ToString().Split(',');
for (int i = 0; i < dekordizisi.Count(); i++)
{
cbx_dekor_paneli.SelectedIndex = cbx_dekor_paneli.FindStringExact(dekordizisi[i].ToString());
}
感谢@Jimi和@yassinMi的帮助。
如果你试图根据数组的内容在ListBox上选择多个项目:
for (int i = 0; i < dekordizisi.Count(); i++)
{
cbx_dekor_paneli.SetSelected(cbx_dekor_paneli.FindString(dekordizisi[i]), true);
}
还要确保ListBox.SelectionMode
属性设置为MultiExtended
希望这对你的代码有帮助。
string dekordizisi = [];
foreach(int i in dekordizisi.GetSelectedIndices())
{
dekordizisi = dekordizisi + dekordizisi.Items[i] + ",";
}
dekordizisi = dekordizisi.Remove(dekordizisi.Length - 1);
在这段代码中,我们初始化了一个变量& &;dekordizisii &;到一个数组中,然后用foreach将它添加到数组中。