Когда нажал на пункт в listbox, то показывается текст в textbox1, например, нажал на пункт 12 (listbox.item.add("12")); и в textbox появился текст textbox1.text="asdasdasd" если нажал на другой пункт то появилось другой текст в textbox1 не знаю как сделать..
Ответ
У компонента ListBox есть событие SelectedIndexChanged, в обработчике которого можно реализовать нужную вам логику. Например, так:
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
//Объявляем переменную lb и приводим компонент, вызвавший событие к типу ListBox
//(у нас же событие сгененрировал ListBox1, верно? А он имеет тип ListBox.
var lb = sender as ListBox;
//В наж текст-бокс пишем номер выбранного пункта, здесь lb.SelectedIndex + 1 так как
//нумерация с нуля.
textBox1.Text = "Выбран пункт №" + (lb.SelectedIndex + 1).ToString();
}
или так:
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
//Получим номер выбранного пункта:
int i = (sender as ListBox).SelectedIndex + 1;
//В зависимости от номера делаем какие-то РАЗНЫЕ действия:
switch (i)
{
case 1:
textBox1.Text = "Выбран первый пункт списка";
break;
case 2:
textBox1.Text = "Тра-ля-ля";
break;
case 3:
textBox1.Text = "Тру-ля-ля";
break;
case 4:
case 5:
textBox1.Text = "Выбран 4 или 5 пункт, лениво уточнять...";
break;
default:
textBox1.Text = "Я таких цифр не знаю!";
break;
}
}
UPDATE:
Можно для привязки объявить и заполнить массив связанных с каждым пунктом значений. В примере я объявляю строковый массив (хотя он может быть любого типа) из 5 пунктов, и, в зависимости от индекса выбранного пункта в ListBox, вывожу соответствующий этому индексу элемент массива.
Если у вас в ListBox будет 100 пунктов, то и массив должен быть не менее чем из 100 пунктов.
Но на всякий случай делаю проверку индекса:
public string[] textData = new string[5] { "qwe", "rty", "uio", "p[]", "asd" };
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
//Получим индекс выбранного пункта:
int i = (sender as ListBox).SelectedIndex;
//Проверяем, не вышли ли мы за границы масива?
if (i > textData.GetLength(0)-1)
{
textBox1.Text = "С этим пунктом ничего не связано!";
return;
}
textBox1.Text = textData[i];
}
Комментариев нет:
Отправить комментарий