Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.59/34: Рейтинг темы: голосов - 34, средняя оценка - 4.59
1 / 1 / 1
Регистрация: 04.12.2013
Сообщений: 17

Реализовать перенос строк в combobox

27.05.2015, 01:00. Показов 8053. Ответов 26
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
c# combobox не влазит текст как перенести строку или предложите альтернативу если не сложно. Заранее спасибо(растягивнаие comboBoxa не предлогайте т. к. будет некрасиво)
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
27.05.2015, 01:00
Ответы с готовыми решениями:

Перенос строк в comboBox
Вопрос примитивный, но я уже сломал голову, как в comboBox сделать перенос строк, а то у меня получается вот такая каша:

Как делается перенос строк в ComboBox?
Подскажите, плиз, как это делается... Нигде инфы нету... :-(

Перенос из ListBox'a в ComboBox выделенных строк
В ListBox есть строки,пользователь выделяет определенные и нажимает на Button,после этого выделенные строки переносятся в ComboBox и...

26
 Аватар для ViterAlex
8953 / 4865 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
01.06.2020, 17:10
Студворк — интернет-сервис помощи студентам
wymaxep, GetItemText нужно вызывать так же и при прорисовке, не только при определении размера.
1
 Аватар для xellan24rus
364 / 296 / 55
Регистрация: 08.04.2020
Сообщений: 1,175
01.06.2020, 18:00
wymaxep, сделайте так, в данном коде сложно понять, так как код не полный, взять за пример колёса от машины, по ним не поймёшь почему машина не едет так и с вашим кодом. Выложите код и кто то здесь да поможет. Если не хотите выкладывать основной код сделайте другой пример проекта с аналогичным кодом.
0
5 / 3 / 2
Регистрация: 14.03.2018
Сообщений: 227
01.06.2020, 19:15
ViterAlex,
Цитата Сообщение от ViterAlex Посмотреть сообщение
GetItemText нужно вызывать так же и при прорисовке, не только при определении размера.
а все понял. работает. спасибо))

Добавлено через 3 минуты
xellan24rus,
Цитата Сообщение от xellan24rus Посмотреть сообщение
сделайте так, в данном коде сложно понять, так как код не полный
я выложил весь код. запрос вывод из базы, вывести в комбобох. и DrawItem, MeasureItem. больше нет никаких кодов для этого комбобокса. но я понял вас.
Цитата Сообщение от xellan24rus Посмотреть сообщение
Если не хотите выкладывать основной код сделайте другой пример проекта с аналогичным кодом
спасибо за совет)
0
 Аватар для Mesartim
11 / 8 / 4
Регистрация: 10.04.2020
Сообщений: 36
02.06.2020, 12:05
Цитата Сообщение от hahol Посмотреть сообщение
c# combobox не влазит текст как перенести строку или предложите альтернативу если не сложно.
Сделать свой Combo. Каркас образца BoxFrame.7z
1
5 / 3 / 2
Регистрация: 14.03.2018
Сообщений: 227
02.06.2020, 15:01
Mesartim, мм, тоже не плохо. спасибо)
0
0 / 0 / 0
Регистрация: 20.10.2022
Сообщений: 3
04.11.2022, 11:36
Для того что бы решить проблему с выводом в ComboBox данных из бд, необходимо произвести следующие манипуляции. Начиная с вывода базы данных в сам ComboBox.

Изначально у меня был такой метод вывода базы данных в ComboBox при инициализации формы:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
public void initializationProductDB()
        {
 
            DB db = new DB();
            db.openConnection();
            MySqlDataAdapter dataAdapterProduct = new MySqlDataAdapter
                ("SELECT `id_product`, `nameProduct` FROM `product`", db.getConnection());
            DataTable dataTableProduct = new DataTable();
            dataAdapterProduct.Fill(dataTableProduct);
            comboBoxIdProduct.DataSource = dataTableProduct;
            comboBoxIdProduct.ValueMember = "id_product";
            comboBoxIdProduct.DisplayMember = "nameProduct";
            db.closeConnection();
        }
Необходимо было поменять метод вывода данных в БД, и реализовать это через reader.

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
26
public void initializationProductDB()
        {
 
            DB db = new DB();
            db.openConnection();
            MySqlCommand command = new MySqlCommand
                 ("SELECT nameProduct FROM product", db.getConnection());
            var reader = command.ExecuteReader();
            while (reader.Read())
            {
                comboBoxIdProduct.Items.Add(reader[0]);
            }
 
            db.closeConnection();
 
            /*DB db = new DB();
            db.openConnection();
            MySqlDataAdapter dataAdapterProduct = new MySqlDataAdapter
                ("SELECT `id_product`, `nameProduct` FROM `product`", db.getConnection());
            DataTable dataTableProduct = new DataTable();
            dataAdapterProduct.Fill(dataTableProduct);
            comboBoxIdProduct.DataSource = dataTableProduct;
            comboBoxIdProduct.ValueMember = "id_product";
            comboBoxIdProduct.DisplayMember = "nameProduct";
            db.closeConnection();*/
        }
Код для работы ComboBox

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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
public AddedOrder()
        {
 
            InitializeComponent();
 
            comboBoxIdCustomer.DrawMode = DrawMode.OwnerDrawVariable;
            comboBoxIdCustomer.DrawItem += ComboBoxIdCustomer_DrawItem;
            comboBoxIdCustomer.MeasureItem += ComboBoxIdCustomer_MeasureItem;
 
            comboBoxIdProduct.DrawMode = DrawMode.OwnerDrawVariable;
            comboBoxIdProduct.DrawItem += ComboBoxIdProduct_DrawItem;
            comboBoxIdProduct.MeasureItem += ComboBoxIdProduct_MeasureItem;
            //comboBoxIdProduct.Items.AddRange(new[] { "one 11111 1111111", "two", "three 333 3333333333",
            //    "four 444444444444", "five", "six", "seven", "..." });
 
            initializationProductDB();
            initializationCustomerDB();
        }
 
        //метод подсветки строк, и переноса в combo для Order
        private void ComboBoxIdCustomer_MeasureItem(object sender, MeasureItemEventArgs e)
        {
            var lbox = (ComboBox)sender;
            var text = comboBoxIdCustomer.GetItemText(lbox.Items[e.Index]);
            var width = lbox.ClientSize.Width;
            var size = e.Graphics.MeasureString(text, lbox.Font, width);
            e.ItemHeight = (int)size.Height;
        }
        private void ComboBoxIdCustomer_DrawItem(object sender, DrawItemEventArgs e)
        {
            var lbox = (ComboBox)sender;
            var color = e.Index % 2 == 0 ? Color.LightGreen : SystemColors.Window;
            using (var brush = new SolidBrush(color))
            {
                e.Graphics.FillRectangle(brush, e.Bounds);
                e.Graphics.DrawString(lbox.Items[e.Index].ToString(), e.Font, SystemBrushes.WindowText, e.Bounds);
            }
        }
        //метод подсветки строк, и переноса в combo для Product
        private void ComboBoxIdProduct_MeasureItem(object sender, MeasureItemEventArgs e)
        {
            var lbox = (ComboBox)sender;
            var text = comboBoxIdProduct.GetItemText(lbox.Items[e.Index]);
            var width = lbox.ClientSize.Width;
            var size = e.Graphics.MeasureString(text, lbox.Font, width);
            e.ItemHeight = (int)size.Height;
        }
 
        private void ComboBoxIdProduct_DrawItem(object sender, DrawItemEventArgs e)
        {
            var lbox = (ComboBox)sender;
            var color = e.Index % 2 == 0 ? Color.LightGreen : SystemColors.Window;
            using (var brush = new SolidBrush(color))
            {
                e.Graphics.FillRectangle(brush, e.Bounds);
                e.Graphics.DrawString(lbox.Items[e.Index].ToString(), e.Font, SystemBrushes.WindowText, e.Bounds);
            }
        }
Миниатюры
Реализовать перенос строк в combobox  
0
0 / 0 / 0
Регистрация: 20.10.2022
Сообщений: 3
04.11.2022, 11:40
yes
Миниатюры
Реализовать перенос строк в combobox  
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
04.11.2022, 11:40

Почему происходит перенос строк из-за ComboBox.Text?
Memo набивается строками программно. И как видно на сриншоте, в Мемо выглядит все нормально, но при сохранении текста Мемо в файл -...

Реализовать перенос строк во всплывающей подсказке
Среда Visual Basic STUDIO’2010 Professional Свойство ToolTipText Если текст подсказки, допустим, к меню, длинный. Как текст...

Формирование ComboBox из строк Текстового документа Как реализовать?
Господа гуру, помогите, не могу дать ума. Есть форма, на форме текстовое поле Edit. Чуть Выше Edit находится выпадающее Combobox ...

Перенос данных с одного combobox-a в другой combobox
Существуют две кнопки по нажатии на первую создается массив combobox-ов, которые в дальнейшем будут отображаться на форме private...

Перенос текста в ComboBox
Гуглил на тему wordwrap у ComboBox, но так ничего и не нашел... Пытался сделать так (наивный):ComboBox1.Items.Add('One string' +...


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

Или воспользуйтесь поиском по форуму:
27
Ответ Создать тему
Новые блоги и статьи
Про "Windows must die!"
kumehtar 04.11.2026
Знаете, чет накатило. . . . Когда-то это было почти боевым кличем: мол, нормальный человек сидит на DOS, OS/ 2 или Linux, а вот это вот - Must Die. А теперь человек произносит «мастдай» с усмешкой - и. . .
Красочные поля с номером страницы svg+background-image
russiannick 04.11.2026
Красочные поля с номером страницы не менее важны чем в эпоху бумажных книг. Посему спешу представить почтеннейшей публике этот важный инструмент который эти поля и формирует. В процессе разработки. . .
Вступаем в новую фазу генерации favicons, векторную.
russiannick 02.11.2026
Теперь нет нужды скрывать что используется простой svg. Исходный код изображения помещаем в поле и жмем кнопку. Исходник преобразуется в вид корректный для помещения в favicon или в url(). Нажатие. . .
Генератор паролей (вариант №4)
Maks 01.11.2026
После публикации 3-го варианта генератора паролей, разослал его своим коллегам (с целью оценки), в итоге были получены следующие рекомендации: 1. Вернуть возможность использования знаков | 1 l I;. . .
Генератор паролей (вариант №3)
Maks 30.10.2026
Финальная версия генератора паролей 1С. Доработка решения в этот раз коснулась только визуальной части, а именно, добавлен реквизит ДопПараметры (тип Булево), который скрывает/ отображает реквизиты:. . .
Магическое мышление и магия, современная наука не отличима от магии (говорит ИИ Джемени)
zorxor 30.10.2026
Джемени, расскажи, пожалуйста, что такое магическое мышление, что такое магия, почему современная наука чем-то напоминает магию? Фраза «Любая достаточно развитая технология неотличима от магии». . .
За какое время ИИ может подобрать пароль по хешу (рассказывает Джемени ИИ)
zorxor 30.10.2026
Расскажи, Джемени, если известен хэш МД5, например, за сколько ИИ сможет подобрать соответствующий пароль? Искусственный интеллект (ИИ) может подобрать простой или средний по сложности пароль по. . .
Кто убил Suno? Почему наше солнышко погасло? (диалог с ИИ Джемени)
zorxor 30.10.2026
Как убивали Suno. Хронология. «Убийство» музыкальной нейросети Suno — это затяжной процесс, в котором технологический хайп стартапа разбился о жесткую реальность судебных исков от гигантов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru