Страница 1 из 1
Работа с ListBoxControl?
Добавлено: 21 май 2015, 08:10
RuslanKoh
Помогите, пожалуйста, разобраться!
У меня есть объект ListBoxControl1, его свойствам я присвоил
Выбранное значение: k_fak.id
Элементы: k_fak.shfac
Элементы отображаются в списке нормально. Но у меня возникла проблема, как мне получить id выбранного элемента и как получить текст выбранного элемента?
Набираю ListBoxControl1. и список возможных вариантов не отображается (интеллисенс не работает), гуглил тоже не нашел нужной информации, голова уже болит искать и экспериментировать, вот как мне узнать как называются эти методы для работы с элементами в StimulSoft?
Re: Работа с ListBoxControl?
Добавлено: 21 май 2015, 09:47
HighAley
Здравствуйте, Руслан.
По сути StiListBoxControl представляет собой обёртку нетовского контрола
ListBox.
Вы можете задать коллекцию Items и потом прочитать выбранные значения с помощью SelectedItem.
Спасибо.
Re: Работа с ListBoxControl?
Добавлено: 21 май 2015, 11:04
Леонид
Доброе утро!
Немного проясню ситуацию.
Как верно заметил Алексей, StiListBoxControl это тот же ListBox из System.Windows.Forms.
Но здесь есть нюанс. С помощью свойства SelectedItem можно получить только выбранное значение, но не Id, т.к. Id нигде не хранится, а
хранятся только текстовые значения из списка.
Чтобы получить Id (k_fak.id) и Value (k_fak.shfac) вам необходимо воспользоваться компонентом LookUpBoxControl и его свойствами Items и Keys соответственно.
Однако, если это не приемлемо, и нужен именно ListBox, то можете воспользоваться примерно таким кодом для решения вашей задачи:
Код: Выделить всё
// создаём класс
private class SimpleClass
{
public SimpleClass(int id, string value)
{
this.id = id;
this.value = value;
}
public int id { get; set; }
public string value { get; set; }
}
// создаём список классов, инициализируем Random'ными значениями
private List<SimpleClass> simpleList = new List<SimpleClass>()
{
new SimpleClass(44, "Значение 1"),
new SimpleClass(23, "Значение 2"),
new SimpleClass(58, "Значение 3"),
new SimpleClass(62, "Значение 5"),
new SimpleClass(71, "Значение 6")
};
...
// далее, например на FormLoad заполняем ListBox значениями
private void Form1_Load(object sender, EventArgs e)
{
listBox1.BeginUpdate();
foreach (SimpleClass c in simpleList)
listBox1.Items.Add(c.value); // обратите внимание, что индексы начинаются с нуля
listBox1.EndUpdate();
}
...
// и для теста, воспользуемся событием SelectedIndexChanged (по клику на значение в ListBox'е)
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
ListBox lb = sender as ListBox; // получаем ссылку на экземпляр текущего объекта
int i = lb.SelectedIndex; // получаем выбранный индекс элемента
SimpleClass c = simpleList[i]; // получаем по индексу нашу структуру
// просто выводим информацию для проверки
string msg = string.Format("Индекс ListBox: {0}\r\nId: {1}\r\nValue: {2}", i, c.id, c.value);
MessageBox.Show(msg);
}
Re: Работа с ListBoxControl?
Добавлено: 21 май 2015, 11:16
RuslanKoh
Спасибо за помощь) В данной ситуации мне хватит и SelectedItem, но подскажите, пожалуйста, может есть какая-нибудь документация где описаны все свойства объектов форм?
Re: Работа с ListBoxControl?
Добавлено: 21 май 2015, 11:21
Леонид
Лично я пользуюсь MSDN, вот по ListBox'у
https://msdn.microsoft.com/en-us/librar ... 10%29.aspx.
Так же, вся документация по Стимулу есть у них на сайте
http://www.stimulsoft.com/ru/documentation.