Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.76/21: Рейтинг темы: голосов - 21, средняя оценка - 4.76
0 / 0 / 0
Регистрация: 24.05.2017
Сообщений: 10

Автоматическая нумерация ListBox.DataSource

23.08.2019, 18:23. Показов 4312. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый вечер!
Как сделать автоматическую нумерацию в ListBox.DataSource?

Нашел способ через изменения формата, но не понимаю что есть что:
C#
1
2
3
4
5
6
7
8
9
10
private void lbAnswers_Format(object sender, ListControlConvertEventArgs e)
        {
            Question ques = e.ListItem as Question;
            if (ques != null)
            {
                var items = (sender as ListControl).DataSource as IList<Question>;
                if (items != null)
                    e.Value = items.IndexOf(ques) + 1 + ". " + ques.Text;
            }
        }
Как я понял lbAnswers - это название listBox
Question какое-то свое форматирование

Думаю, ключевой момент тут: e.Value = items.IndexOf(ques) + 1 + ". " + ques.Text;

Но не понимаю как тут все работает.

Исходные данные такие:
C#
1
2
3
4
5
6
7
8
9
//Есть список:
List<string> spisok = new List<string>();
 
//заполняем данными:
spisok.Add("123");
spisok.Add("qwe");
 
//И выводим в listBox1
listBox1.DataSource = spisok;
И вот надо реализовать вот такой вывод:

1. 123
2. qwe
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
23.08.2019, 18:23
Ответы с готовыми решениями:

Автоматическая нумерация ячеек в DataGridView
Доброе время суток! у меня такая проблема: есть DataGridView, которая представляет собой таблицу из двух столбцов. можно ли сделать так,...

BindingSource не понимает DataSource
Здравствуйте. Для доступа к БД своего проекта пользуюсь LINQ to SQL Имеется public static List&lt;megapolis.User&gt; UsersList = new...

Автоматическая нумерация элементов в ListBox
Всем привет. Задача. Есть ListBox к которому привязан List&lt;Type&gt; через ItemsSource. Type - моя собственная структура данных со...

11
Эксперт .NET
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,575
23.08.2019, 18:47
Лучший ответ Сообщение было отмечено lunatik91 как решение

Решение

Это будет работать только если у вас в списке нет одинаковых элементов. А Question в вашем случае это string.
0
3566 / 2507 / 1174
Регистрация: 14.08.2016
Сообщений: 8,219
24.08.2019, 01:08
Someone007, я бы не был так уверен,
Цитата Сообщение от lunatik91 Посмотреть сообщение
ques.Text
, которая, в свою очередь
Цитата Сообщение от lunatik91 Посмотреть сообщение
ques = e.ListItem as Question;
это явно поле/свойство некоей конструкции Question, о которой тут, ни слова
З.Ы. не понимаю я людей, спионеривших некий код, выкладывающих куски оного, причем не те что нужны, задают вопросы, исходя из знанийнеких догадок
0
0 / 0 / 0
Регистрация: 24.05.2017
Сообщений: 10
24.08.2019, 12:44  [ТС]
Вот ссылка на тему:


и тут кроме этого куска кода больше ничего нет. Поиск в гугле не дал результатов, поэтому и была создана эта тема.

Someone007, Почему данный вывод не будет работать для одинаковых элементов? у каждого элемента свой индекс, даже если они одинаковые.
0
Эксперт .NET
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,575
24.08.2019, 14:39
Цитата Сообщение от Diamante Посмотреть сообщение
это явно поле/свойство некоей конструкции Question, о которой тут, ни слова
Подразумевалось что нужно заменить на string.
Цитата Сообщение от lunatik91 Посмотреть сообщение
Почему данный вывод не будет работать для одинаковых элементов? у каждого элемента свой индекс, даже если они одинаковые.
Потому что IndexOf вам будет возвращать первый найденный элемент списка, если присутствуют несколько одинаковых.
0
0 / 0 / 0
Регистрация: 24.05.2017
Сообщений: 10
24.08.2019, 21:31  [ТС]
Someone007, да, все верно написано

Добавлено через 5 минут
Someone007, а есть другие варианты с DataSource?
0
Эксперт .NET
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,575
24.08.2019, 22:37
Вы можете добавить в ваш источник данных помимо текста еще и нумерацию и использовать подход из первого поста...
0
0 / 0 / 0
Регистрация: 24.05.2017
Сообщений: 10
24.08.2019, 23:20  [ТС]
Someone007, а можно конкретный пример того, что вы имеете ввиду!
0
Эксперт .NET
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,575
25.08.2019, 00:14
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
class Foo
{
    public int Order { get; set; }
    public string Text { get; set; }
}
 
//Есть список:
List<Foo> spisok = new List<Foo>();
 
//заполняем данными:
spisok.Add(new Foo { Order = 1, Text = "123"});
spisok.Add(new Foo { Order = 2, Text = "qwe"});
 
//И выводим в listBox1
listBox1.DataSource = spisok;
 
 
private void lbAnswers_Format(object sender, ListControlConvertEventArgs e)
        {
            Foo ques = e.ListItem as Foo;
            if (ques != null)
            {
                    e.Value = ques.Order + ". " + ques.Text;
            }
        }
...
0
3566 / 2507 / 1174
Регистрация: 14.08.2016
Сообщений: 8,219
25.08.2019, 01:01
Someone007, а если строка впихнута в середину списка? а если юзер схалтурит и запилит неправильную нумерцию?
0
Эксперт .NET
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,575
25.08.2019, 02:17
Цитата Сообщение от Diamante Посмотреть сообщение
а если строка впихнута в середину списка? а если юзер схалтурит и запилит неправильную нумерцию?
Это уже детали, про которые мы ничего не знаем. Откуда вообще эти строки берутся и т.д.
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16140 / 11264 / 2888
Регистрация: 21.04.2018
Сообщений: 33,119
Записей в блоге: 2
25.08.2019, 02:36
Цитата Сообщение от lunatik91 Посмотреть сообщение
Как сделать автоматическую нумерацию в ListBox.DataSource?
Цитата Сообщение от lunatik91 Посмотреть сообщение
Исходные данные такие:
Цитата Сообщение от lunatik91 Посмотреть сообщение
И вот надо реализовать вот такой вывод:
1. 123
2. qwe
C#
1
2
3
4
5
6
7
8
9
//Есть список:
List<string> spisok = new List<string>();
 
//заполняем данными:
spisok.Add("123");
spisok.Add("qwe");
 
//И выводим в listBox1
listBox1.DataSource = spisok.Select((str, ind) => $"{ind}. {str}");
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
25.08.2019, 02:36
Помогаю со студенческими работами здесь

автоматическая нумерация
Можно сделать так чтобы в колонке ID, когда добавляешь новые записи автоматически нумеровалось не 1,2,3 ..., а скажем номер который состоит...

Автоматическая нумерация строк
У меня есть сорок пять строк,нужно что бы каждая строка стояла под своим номером.Строки находятся в TextBox1. Dim Mass(10) As String ...

Нумерация рисунков автоматическая
Здравствуйте! Делаю отчет(90 страниц). Там много картинок. Если от руки нумеровать их, а потом вдруг понадобится вставить посредине ещё 1...

Автоматическая нумерация в DataReport
Подскажите, пожалуйста, как сделать автонумерацию, в самом отчете DataReport?

Автоматическая нумерация страниц
Курил мануалы от самих оконников, там что - то по их руководствам не выходит у меня.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru