2015-12-23 3 views
-3

У меня есть 2 ListBoxes и 2 TextBoxes, что мне нужно, чтобы сделать это, если я нажму на элемент в окне списка 1, он отобразит 2 или более элементов в окне списка 2 и, если я нажму элемент в списке 2 будет операция, и она появится в текстовом поле 1 и текстовом поле 2, ex. ballpen = 10, notebook = 20C# с использованием нескольких списков

Элементы, входящие в состав «listBox1», являются «ручкой» и «записной книжкой». Если я нажму ноутбук, элемент отобразится в поле списка 2: 1,2, затем, если я нажму «1», текстовое поле 1.text = 20, потому что ноутбук равен 20 * 1 = 20

+1

Что вы ищете это событие называется SelectedIndexChanged – MaxOvrdrv

+0

может у пожалуйста, дайте мне пример использования SelectedIndexChanged. TNX! : D – Alain

+1

Google - ваш друг. Есть миллионы примеров ... – MaxOvrdrv

ответ

0

Я думаю, вы можете использовать словарь хранит информацию из спискаBox1 и listBox2. key - это элемент в спискеBox1, значение - это элементы списка в спискеBox2. когда вы нажимаете элемент в спискеBox1 => вызывать событие SelectedIndexChanged из спискаBox1 => получить выбранный вами элемент (предположим = значение1) => искать в словаре с ключом = value1 => вы получите элементы списка в listBox2 (предположим = listItems) = > Добавить listItems в listBox2 =>, когда вы нажимаете элемент в listBox2 вызывают событие SelectedIndexChanged из спискаBox2 => значение update для textbox1 и textbox2 = items выбрано в listBox1 и listBox2.

1

Итак, я собираюсь создать перечисление для ваших предметов.

public enum ListBoxItemThing 
{ 
    Pen = 10, Notebook = 20 
} 

И тогда я добавлю их в «listBox1» внутри конструктора формы.

public Form1() 
{ 
    InitializeComponent(); 
    foreach(ListBoxItemThing item in Enum.GetValues(typeof(ListBoxItemThing))) 
    { 
     listBox1.Items.Add(item); 
    } 
} 

И затем использовать эту процедуру, чтобы сделать расчет для textBox1:

private void Calculate() 
{ 
    int a = (int)(listBox1.SelectedItem as ListBoxItemThing); 
    int b = int.Parse(listBox2.SelectedItem.ToString()); 
    textBox1.Text = (a * b).ToString(); 
} 
Смежные вопросы