Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.55/47: Рейтинг темы: голосов - 47, средняя оценка - 4.55
0 / 0 / 1
Регистрация: 02.04.2015
Сообщений: 46
1

Добавление картинки в listbox

18.05.2015, 17:00. Показов 9798. Ответов 20
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Есть listBox
Задача - сделать возможность добавления картинки в строку без WPF.
Как это реализовать?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.05.2015, 17:00
Ответы с готовыми решениями:

listbox и вывод картинки из бд
И так есть у меня заполненный listbox,я сделал при выделении он выводит картинку,но если в поле нет...

Добавление элементов в ListBox
namespace cm2b { public partial class Form1 : Form { public Form1() {...

Добавление элементов в ListBox
Доброго времени суток. Нужна помощь. Есть 3 ListBox'a. Допустим в 1-ом LB 2 Записи: admin и user....

Добавление текста в listbox
Как сделать чтоб текст добавлялся снизу вверх в listbox? insert не подходит

20
25 / 25 / 10
Регистрация: 14.12.2014
Сообщений: 110
18.05.2015, 19:40 2
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
 public Form1()
        {
            this.listBox1.DrawMode = DrawMode.OwnerDrawFixed;
            this.listBox1.DrawItem += new System.Windows.Forms.DrawItemEventHandler(listBox1_DrawItem);
        }
 
 void request_DrawItem(object sender, System.Windows.Forms.DrawItemEventArgs e)
        {
            int index = e.Index;
            Graphics g = e.Graphics;
 
            Bitmap bm = new Bitmap(File.OpenRead(@".\images.jpg")); //Загружаешь картинку здесь
            foreach (int selectedIndex in this.request.SelectedIndices)
            {
                if (index == selectedIndex)
                {
                    e.DrawBackground();
                    g.DrawImage(bm, e.Bounds);
                }
            }
 
            Font font = request.Font;
            Color colour = request.ForeColor;
            string text = request.Items[index].ToString();
 
            g.DrawString(text, font, new SolidBrush(request.ForeColor), (float)e.Bounds.X, (float)e.Bounds.Y);
            e.DrawFocusRectangle();
        }
Добавлено через 2 минуты
Я точно не понял что ты хотел, но это сделает что-бы фон выделенного элемента был картинкой
1
0 / 0 / 1
Регистрация: 02.04.2015
Сообщений: 46
18.05.2015, 20:01  [ТС] 3
Цитата Сообщение от datey Посмотреть сообщение
Я точно не понял что ты хотел
Та я чат делаю. У меня переписка в listbox выводится. Мне нужно смайлы туда прикрепить. Поэтому я ищу способ картинки вместе с текстом помещать в листбокс.

request это что? Компилятор красным подчеркнул.
0
25 / 25 / 10
Регистрация: 14.12.2014
Сообщений: 110
18.05.2015, 20:04 4
Flmnv, тю блин, тогда это не подойдёт.
Да это забыл переименовать, с другого проекта похожее было. Тебе не листбокс нужен.

Добавлено через 32 секунды
Flmnv, быть может ListView
1
0 / 0 / 1
Регистрация: 02.04.2015
Сообщений: 46
18.05.2015, 20:05  [ТС] 5
Есть какой-нибудь способ помещать смайлы в listView?
Мне нужно чтобы был groupbox со смайлами. Я нажал на смайл и он появился после курсора. Ну, стандартная штука.
0
25 / 25 / 10
Регистрация: 14.12.2014
Сообщений: 110
18.05.2015, 20:09 6
Flmnv, я таким не занимался. Но может поищу

Добавлено через 2 минуты
Flmnv, если я не ошибаюсь то смайлы можно добавлять в richTextBox
1
0 / 0 / 1
Регистрация: 02.04.2015
Сообщений: 46
18.05.2015, 20:11  [ТС] 7
Я уже готов на любой элемент управления.
Проблема в том, что я понятия не имею, как это все делается.

Добавлено через 21 секунду
А да, я находил richtextbox, но там был WPF, мне не подходит.
0
25 / 25 / 10
Регистрация: 14.12.2014
Сообщений: 110
18.05.2015, 20:33 8
Лучший ответ Сообщение было отмечено Flmnv как решение

Решение

Flmnv, сейчас что-нибудь попробую

Добавлено через 20 минут
Flmnv,
C#
1
2
3
4
 Bitmap myBitmap = new Bitmap(File.OpenRead(@".\smile.png"));
            Clipboard.SetDataObject(myBitmap);
            DataFormats.Format myFormat = DataFormats.GetFormat(DataFormats.Bitmap);
            richTextBox1.Paste(myFormat);
Вот этим можно вставить в смайл в TextBox
1
0 / 0 / 1
Регистрация: 02.04.2015
Сообщений: 46
18.05.2015, 20:39  [ТС] 9
А ведь работает. Спасибо!

P.S.
Цитата Сообщение от datey Посмотреть сообщение
в смайл в TextBox
В textBox у меня не получилось. Сделал для richTextBox.

Я благодарен за помощь.
0
25 / 25 / 10
Регистрация: 14.12.2014
Сообщений: 110
18.05.2015, 20:45 10
Flmnv, не за что)
0
0 / 0 / 1
Регистрация: 02.04.2015
Сообщений: 46
24.05.2015, 09:47  [ТС] 11
datey, правда с этим методом появилась новая проблема.
Если после того, как вставить картинку вписать еще текст - то картинка будет удалена.
Гуглил - пишут, что идет перезапись ClipBoard.
0
25 / 25 / 10
Регистрация: 14.12.2014
Сообщений: 110
24.05.2015, 12:46 12
Flmnv, странно, но у меня не удалялась. А ты как смайлы вставляешь, сразу картинку, или сначало символами (сочетанием типа =) ), а потом заменяешь на картинку?
0
0 / 0 / 1
Регистрация: 02.04.2015
Сообщений: 46
24.05.2015, 12:51  [ТС] 13
Цитата Сообщение от datey Посмотреть сообщение
сначало символами (сочетанием типа =) ), а потом заменяешь на картинку
Ибо это чат, передать сообщение я могу только в текстовом виде и поэтому приходится обрабатывать его там, куда оно пришло.
Попробовал сделать так:
C#
1
2
3
4
5
6
7
8
9
10
11
12
  private void richTextBox1_TextChanged(object sender, EventArgs e)
        {  
            Clipboard.SetDataObject(myBitmap);
            for (int i = 0; i < richTextBox1.Text.Length - 1; i++)
            {
               if (richTextBox1.Text[i] == ':' & richTextBox1.Text[i + 1] == ')')
               {
                   richTextBox1.SelectionStart = i; richTextBox1.Paste(myFormat); i = i + 2; 
                   
               }
            }
        }
В таком случае смайлы будут рядом с шифром смайла.
Если попытаться удалить шифры смайла, то отображаться будет только последний.
Насколько я понял, в ричтекстбоксе идет перезапись, если после вставки картинки идет добавление текста.
0
25 / 25 / 10
Регистрация: 14.12.2014
Сообщений: 110
24.05.2015, 12:56 14
Цитата Сообщение от Flmnv Посмотреть сообщение
Гуглил - пишут, что идет перезапись ClipBoard.
В таком случае попробуй создать лист DataFormats.Format, добавляй туда клипборды и по очереди вставляй. Думаю ты понял.
0
0 / 0 / 1
Регистрация: 02.04.2015
Сообщений: 46
24.05.2015, 13:02  [ТС] 15
Не вариант.
С листами я работать не умею, поэтому ищу выход удалить подстроку таким образом, чтобы картинки не стирались.
CHAT.rar
0
25 / 25 / 10
Регистрация: 14.12.2014
Сообщений: 110
24.05.2015, 13:07 16
Flmnv, не умеешь? Я когда практиковался игрушки писать, там листы листов листов были. Лучше учи, без них никак.
0
0 / 0 / 1
Регистрация: 02.04.2015
Сообщений: 46
24.05.2015, 13:08  [ТС] 17
Цитата Сообщение от datey Посмотреть сообщение
Лучше учи, без них никак.
Времени нет. Сроки сдачи курсовой поджимают :C
0
25 / 25 / 10
Регистрация: 14.12.2014
Сообщений: 110
24.05.2015, 13:12 18
Flmnv, ой да ладно, мне в среду нужно сдать, а я за 3 месяца половину сделал. Не потому что не времени, а просто лень. Я могу сейчас за пару часов дописать, но лень.

Добавлено через 1 минуту
Flmnv,
C#
1
2
3
4
5
 public List<User> TcpClients
        {
            get { return tcpClients; }
            set { tcpClients = value; }
        }
Ну вот же лист есть
0
0 / 0 / 1
Регистрация: 02.04.2015
Сообщений: 46
24.05.2015, 13:13  [ТС] 19
Скажем так, не все написано мной.
0
25 / 25 / 10
Регистрация: 14.12.2014
Сообщений: 110
24.05.2015, 13:33 20
Flmnv, как мне подключится к серверу?

Добавлено через 1 минуту
Flmnv, точнее запустить
0
24.05.2015, 13:33
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.05.2015, 13:33
Помогаю со студенческими работами здесь

Добавление массива в listbox
Как добавить массив строк в листбокс? Form1 fr = new Form1(); string str = new...

Добавление и удаление listbox
Как исправить ошибку при добавление элемента в listbox: Ни одна из перегрузок метода &quot;Add&quot; не...

Добавление элементов в ListBox
Доброго времени суток всем! Для автоматизации одного несложного, но нудного процесса на работе...

Добавление слова в listbox
как сделать проверку на наличие слова в listbox, и если оно там есть, то выводится сообщение, и...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru