|
0 / 0 / 1
Регистрация: 04.01.2014
Сообщений: 37
|
||||||
.NET 4.x Как создать красивый контакт лист User control05.03.2015, 01:08. Показов 1678. Ответов 14
Метки нет (Все метки)
Доброе время суток форумчане.
Говорю сразу программирую недавно на VB .NET читал, искал по форуму,гуглил решение моей проблемы лежит на поверхности и опытный программист сразу сможет разобраться в моей ситуации и дать кусочек кода или натолкнуть как то меня на путь истинный. я пробывал понять что то в wpf но не шарю я там с этим xaml ни в какую. Давайте ближе к делу. пишу настольный клиент vk.com, столкнулся с выводом списка друзей. в загрузке и парсинга данных проблем нет, проблема в создании красивого контрола который бы отображал все это дело в удобном формате. конкретно это список item'ов в каждом итеме 1 картинка и 2 строки. Мое решение пало на динамическое создание в FlowLayoutPanel элементов выглядит это так: на форме FlowLayoutPanel1 c параметрами WrapContents = False , AutoScroll = True , FlowDerection = Top\Down и кнопка в ней код: Кликните здесь для просмотра всего текста
ну некрасиво( помогите чтоб можно было в лист бокс грузить как нить такое же)))
0
|
||||||
| 05.03.2015, 01:08 | |
|
Ответы с готовыми решениями:
14
Как создать на С# user control для VBA (VB6) Какая разница между Web server control, Composite control и User Control Создать user control |
|
0 / 0 / 1
Регистрация: 04.01.2014
Сообщений: 37
|
|
| 06.03.2015, 01:11 [ТС] | |
|
Может есть хотя бы способ оптимизировать подобную вещь, что бы список загружался быстрее и программа не подвисала во время загрузки Хотя понимаю что тут только многопоточность поможет но я еще не доучил язык настолько хорошо что бы многопоточность использовать.
Пробывал создавать пользовательский элемент управления, и его динамически дублировать в FlowLayoutPanel, но опять таки делается это не с большей скоростью чем создавать каждый элемент. Новый вопрос такой можете ли привести пример WPF контрола в котором будет listbox с datatemplate что бы можно было добавлять туда итемы что то в таком формате: CustomListbox.items.add(Label1 = 1234" , Label2 = "5678" , Image = "http://mysite.ru/image/001.jpg")
0
|
|
|
8951 / 4863 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
|
|
| 06.03.2015, 01:56 | |
|
Самое простое: использовать обычный listbox с DrawMode = OwnerDrawVariable
0
|
|
|
0 / 0 / 1
Регистрация: 04.01.2014
Сообщений: 37
|
|
| 06.03.2015, 21:12 [ТС] | |
|
А можно хотя бы небольшой примерчик я только начал учить, нагуглил пару примеров и решил что несмогу сам реализовать, могу только попробывать допилить примерчик под свои нужды, и то многое еще не понимаю как работает темболее все что связано с классами не говоря уже про прорисовку ))
Добавлено через 18 часов 45 минут Сутки искал как прорисовать image в listbox item ни нашел ни чего на vb.net ни на c# Есть примеры раскрашивание текста, можете кинуть пример как пририсовать Image перед текстом? можно на c#
0
|
|
|
8951 / 4863 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
|
||||||
| 06.03.2015, 21:47 | ||||||
Сообщение было отмечено Памирыч как решение
Решение
Тут правильнее говорить, что мы рисуем текст после картинки, а не картинку перед текстом
1
|
||||||
|
0 / 0 / 1
Регистрация: 04.01.2014
Сообщений: 37
|
||||||
| 06.03.2015, 21:50 [ТС] | ||||||
|
Вот сюда по этому коду добавляет image в итем но как сделать чтобы вместо Image
был PictureBox и текст справа? Кликните здесь для просмотра всего текста
Добавлено через 1 минуту ViterAlex, Опередили))) спасибо за пример щас начну разбирать)))) рисуем картинку перед текстом как и у вас в примере, как разберу обращусь если будет что то не понятно!)
0
|
||||||
|
8951 / 4863 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
|
|
| 06.03.2015, 21:56 | |
|
0
|
|
|
0 / 0 / 1
Регистрация: 04.01.2014
Сообщений: 37
|
|
| 06.03.2015, 22:04 [ТС] | |
|
Потому что PictureBox умеет брать картинку с url PictureBox1.imagelocation = "http://mysite.ru/image/001.jpg"
тоесть мне нужно чтобы можно было добавить в listbox строку так ListBox1.items.add("http://mysite.ru/image/001.jpg" , "Вася Пупкин") Добавлено через 2 минуты ну и собветственно при прорисовке слева отрисуется аватар по url в picturebox'e а справа отрисуется сам текст хотя мне не важно как добавлять итемы но в дальнейшем в любом случае придется их чистить функцией listbox1.items.clear() и возможно проводить операции со строками по индексу
0
|
|
|
8951 / 4863 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
|
|
| 06.03.2015, 22:17 | |
|
ты идёшь неправильным путём, подстраиваясь под возможности контрола. Нужно действовать наоборот.
Я бы сначала скачивал xml, парсил или десериализовал его в классы и работал бы с классами. Тем более, что тебе эту операцию нужно будет проделывать неоднократно
0
|
|
|
0 / 0 / 1
Регистрация: 04.01.2014
Сообщений: 37
|
||||||||||||||||
| 07.03.2015, 16:10 [ТС] | ||||||||||||||||
|
ViterAlex, Это конечно правильно, но с моими знаниями языка пока что это слишком сложно, хочу сделать что то минимум сейчас, а в дальнейшем уже допиливать по мере более глубокого изучения.
Изучаю к сожалению ни по книгам, а по разбору msdn и чужих исходников и на основе полученных знаний уже что то делаю свое. Добавлено через 53 минуты Вообщем попробывал что то сделать не получилось самому picturebox пихнуть, пихнул тот же image вообщем вот что получилось. Но походу вообще не правильно мыслю. В массиве картинок используются пути к файлам jpg. как грузить из url так и не понял(
ViterAlex, Замутил я примерно то что хотел=) но вот как то так это должно выглядеть но я жестоко накосячил походу где то, вообщем даже всего с 4мя элементами жестокие лаги в списке))) Кликните здесь для просмотра всего текста
Добавлено через 6 часов 48 минут Убрал вроде как глюки интерфейса, примерно получись то что мне нужно. вот только как правильно сделать все тоже самое только с picturebox и что бы итемы можно было добавлять через listbox.items.add() Кликните здесь для просмотра всего текста
Добавлено через 9 часов 35 минут Думаю целесообразней использовать коллекцию строк и image чем массив? или с коллекцией будет неудобно работать в дальнейшем?
0
|
||||||||||||||||
|
8951 / 4863 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
|
|
| 08.03.2015, 01:35 | |
|
Обычно, разработку программы начинают с изучения уже существующих аналогов. Если бы ты это сделал, то узнал бы, что аватары не грузят каждый раз с сервера, а кешируют их на диске. К этому и ты должен идти и тогда преимущество pictureBox исчезнет и отпадёт потребность таскать тяжёлый контрол для отрисовки одной единственной картинки.
конечно, для хранения информации лучше всего использовать коллекцию, вернее динамический список List
0
|
|
|
0 / 0 / 1
Регистрация: 04.01.2014
Сообщений: 37
|
||
| 08.03.2015, 04:03 [ТС] | ||
|
Использование PictureBox отпало так как и решил сохранять в кэш, также как это делают оф программы под мобильные платформы, и поэтому вопрос в следующем, алгоритм как я понял такой, При запуске грузим все данные в какой нибудь класс, а картинки друзей грузим на диск можно ведь сохранять как ("id" & ".img) правильно мыслю?
0
|
||
|
8951 / 4863 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
|
|
| 08.03.2015, 10:37 | |
|
0
|
|
|
0 / 0 / 1
Регистрация: 04.01.2014
Сообщений: 37
|
|||||||||||||||||||||
| 09.03.2015, 19:34 [ТС] | |||||||||||||||||||||
|
ViterAlex, Вообщем боролся боролся наваял отдельный класс с кэшированием
Кликните здесь для просмотра всего текста
и сам список Кликните здесь для просмотра всего текста
Так очищаю кэш, хотя впринцепе очистка будет в настройках, так как аватары обновляются
и как можно организовать обновления списка в фоне, что бы не особо было заметно если ListBox на глазах у пользователя и он его крутит? Добавлено через 9 часов 57 минут 1й вопрос отпал сделал так: Кликните здесь для просмотра всего текста
Второй вопрос еще актуален
0
|
|||||||||||||||||||||
|
0 / 0 / 1
Регистрация: 04.01.2014
Сообщений: 37
|
||||||
| 19.03.2015, 19:03 [ТС] | ||||||
|
Чтобы не создавать новую тему продолжу тут,
Как можно добавить Кнопку в Item? пробывал так: Кликните здесь для просмотра всего текста
Но вроде как это неправильно так делать нельзя покажите пожалуйста как можно?Добавлено через 15 часов 11 минут актуально
0
|
||||||
| 19.03.2015, 19:03 | |
|
Помогаю со студенческими работами здесь
15
Не получается создать user control User Control - как контролировать? Как User control упаковать в dll
Как сделать User control для MonthCalendar Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
||||
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|
Фото: Daniel Greenwood
kumehtar 13.11.2025
|
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга,
Ты же видел моря и метели.
Как сменялись короны и стяги,
Как эпохи стрелою летели.
- Этот мир — это крылья и горы,
Снег и пламя, любовь и тревоги,
И бескрайние. . .
|
PowerShell Snippets
iNNOKENTIY21 11.11.2025
Модуль PowerShell 5. 1+ : Snippets. psm1
У меня модуль расположен в пользовательской папке модулей, по умолчанию: \Documents\WindowsPowerShell\Modules\Snippets\
А в самом низу файла-профиля. . .
|