|
Как в ListView .Net хотя б добавить строчку с subitems (я пока не дошел до редактирования)
|
|||
---|---|---|---|
#18+
Вот есть ListView. Колонки "Name", "Company", "Phone" Вот на VB6 так: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9.
Это с CommonControls версии 5 (обращение по номеру SubItem) С CommonControls-6 в VB6 еще проще, там можно обратиться по имени столбца, но я по ряду причин 6-ю версию не использовал. Теперь о .Net Есль ListView1 (.NET) Ему в конструкторе сделал коллекцию Columns с именами: Column_Name Column_Company Column_Phone ... Я худо-бедно добавил item: Код: vbnet 1. 2.
А дальше я хочу сделать Код: vbnet 1. 2. 3.
Ну и как это делается по простому? Как выше он чего-то вякает про "Read_only" P.S. Уже злюсь. Предполагал простую конструкцию типа как накалякал выше, а поиск намекает на то что надо чуть не каждый сабитем через .AddSubItem(да еще и по номеру, а не по имени соответствующего столбца) делать. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2013, 17:03 |
|
Как в ListView .Net хотя б добавить строчку с subitems (я пока не дошел до редактирования)
|
|||
---|---|---|---|
#18+
Не, вот так добавляет Код: vbnet 1.
но мне надо хотя бы Код: vbnet 1.
А эта скотина вообще считает что Код: vbnet 1.
Вообще-то я автоматически задал все столбцы (т.е. саб-итемы для каждого нового итема) в конструкторе. Или я че каждому итему должен тупо объяснять сколько у него сабитемов? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2013, 17:25 |
|
Как в ListView .Net хотя б добавить строчку с subitems (я пока не дошел до редактирования)
|
|||
---|---|---|---|
#18+
Примерно так: SubItems.Add(New ListViewSubItem With {.Text = "col1", .Align = ...}) или SubItems.AddRange({"col1","col2",...}) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2013, 20:53 |
|
Как в ListView .Net хотя б добавить строчку с subitems (я пока не дошел до редактирования)
|
|||
---|---|---|---|
#18+
Antonariy, Я пока что сделал так: Код: vbnet 1. 2. 3. 4. 5. 6.
Посмотрю дальше как это увязывается с изменением порядка столбцов. Но на тек. момент меня реально бесит то, что я должен делать SubItems. Add а не могу с ходу обратиться к SubItems(2).Text Если я добавляю Item в ListView-Report то это уже должно предполагать что у Item есть SubItems (нулевой + количество столбцов). Я например не во все subitems текст пишу, а должен делать Код: vbnet 1.
И по хорошему должна быть предусмотрена возможность обращения к SubItems по имени (Name, Text) столбца. Если этого нет, то это хуже чем в VB6, и не намного комфортнее чем через API. Я еще кстати не проверял .NET -Listview на "вшивость". Но вроде он Common Controls, во всяком случае стиль "Explorer" поддерживает. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2013, 23:00 |
|
Как в ListView .Net хотя б добавить строчку с subitems (я пока не дошел до редактирования)
|
|||
---|---|---|---|
#18+
Ну, пока могу сказать про .NET - Listview следующее: 1) + контрол "настоящий" 2) + CheckBoxes -поддерживается 3) + DisplayIndex (последовательность отображения столбцов) - поддерживается, не надо мучиться с API 4) - То что надо "добавлять" subitems - очень криво и через задницу сделано 5) - LVS_EX_SUBITEMIMAGES (картинки в subitems) -на уровне .NET не поддерживается Только API: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
6) - Двойная буферизация - если она в .Net и поддерживается, то через задницу, Свойство .DoubleBuffered похоже есть только для формы, при этом возможны нежелательные "спецэффекты". Посему проще: Код: vbnet 1.
7) - .NET ImageList (искажающий цвета) ему присвоить не рискнул, хотя API-шный с учетом Код: vbnet 1.
создается много проще чем в VB6. По уровню "сервиса" - нечто типа VB6 Common Controls 6 (которые без поддержки стилей), если не сказать что хуже. Но с учетом API-поправок, вполне пригоден. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2013, 04:17 |
|
Как в ListView .Net хотя б добавить строчку с subitems (я пока не дошел до редактирования)
|
|||
---|---|---|---|
#18+
А че, с сортировкой по заданному столбцу все так плохо? ListView.ListViewItemSorter - свойство Это че за ересь такая? Я че, должен писать 5 километров кода, чтоб указать столбец по которому сортирую? Мне нужно столбец для сортировки указать. ListView1.SortKey -где? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2013, 23:29 |
|
Как в ListView .Net хотя б добавить строчку с subitems (я пока не дошел до редактирования)
|
|||
---|---|---|---|
#18+
Не, ну с сортировкой реально жестоко. Дебилизм полный. VB6 здесь на высоте. Я конечно нашел этот пример: How to sort a ListView control by a column in Visual C# и перекатал на VB.NET но на хоть какое-то осознание и умение воспользоваться у меня ушло несколько часов. Плюс этот класс еще и крашит, если сначала добавить итем, а потом сабитемы к нему, еще не сразу это понял. DisplayIndex через API и то легче менять. Как-то так: Код: vbnet 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. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102.
... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2013, 03:29 |
|
Как в ListView .Net хотя б добавить строчку с subitems (я пока не дошел до редактирования)
|
|||
---|---|---|---|
#18+
Дмитрий77Я че, должен писать 5 километров кода, чтоб указать столбец по которому сортирую? Дмитрий77Не, ну с сортировкой реально жестоко. Дебилизм полный. нет просто ты не умеешь её готовить, не расстраивайся, со временем придёт понимание ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2013, 11:09 |
|
Как в ListView .Net хотя б добавить строчку с subitems (я пока не дошел до редактирования)
|
|||
---|---|---|---|
#18+
pation, понимание чего? Как готовить эти 5км? Или понимание непонятого 1км в этих 5 км? Скорее просто буду втыкать этот класс и копировать код когда это будет нужно в след. раз. >со временем я не понимаю НА ФИГА Я ВООБЩЕ ДОЛЖЕН ГОТОВИТЬ эти 5 км. мне всегда казалось что контрол - это чтоб съекономить мое время ( готовый завтрак) Разработчикам контрола сложно было приготовить этот код "внутри" и предоставить мне SortKey? Насколько я понял, "преимущество" этого IComparer в том, что я могу (наверно) как-то поменять код, чтоб сортировать по дате, по числам и т.п. А кстати как переделать этот класс чтоб сортировать по дате? Или например мне сейчас надо было отсортировать по свойству LItem.Checked (yes, no)? Оно это умеет? Я в таких случаях обычно прячу текст в Tag, в Text пишу то, что даст правильную сортировку, применяю sort, потом возвращаю все на свои места. Ну, с checked я счас использовал старый метод, чтоб не парить себя дальше. Опять же, разработчики могли это сделать сами и добавить какой-нибуть .SortMethod = vbText, vbData, vbNumeric и т.д. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2013, 14:28 |
|
Как в ListView .Net хотя б добавить строчку с subitems (я пока не дошел до редактирования)
|
|||
---|---|---|---|
#18+
Дмитрий77 когда поймешь, то 5км не понадобится. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2013, 14:44 |
|
Как в ListView .Net хотя б добавить строчку с subitems (я пока не дошел до редактирования)
|
|||
---|---|---|---|
#18+
Дмитрий77, .. а у вас что, полностью "офлайновое" приложение? ... я к тому, что зачем пытаться мучить контрол, если сортировать (и иным образом манипулировать) можно источник данных .. Для этого вон цельный фреймворк придумали ... ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2013, 14:44 |
|
Как в ListView .Net хотя б добавить строчку с subitems (я пока не дошел до редактирования)
|
|||
---|---|---|---|
#18+
fortibransa Дмитрий77 когда поймешь, то 5км не понадобится. Ну ты ж понял, дай код в 2 строчки, а я его пойму. Чего темнить то, все свои.Я например, когда чего-то понимаю, код выкладываю, не стесняюсь. В google искал, другого решения не нашел, и потом код который я привел следует из документации. Просто в VB6 был простой инструмент SortKey, здесь его не вижу, или я слепой. Контрол тот же самый (он Common Controls) -не доказывайте мне обратное, уже проверил. carrotik.. а у вас что, полностью "офлайновое" приложение? ... я к тому, что зачем пытаться мучить контрол, если сортировать (и иным образом манипулировать) можно источник данных .. Для этого вон цельный фреймворк придумали ... Ну, вообще то содержание ListView у меня как правило повторяет содержание таблицы в БД. Ну у ListView вроде нет прямой привязки к базе. Всякие гриды использовать не хочу и не буду. И потом я могу какие-то поля отображать "нелинейно", например добавляю картинки, меняю текст на другой. БД -Access, способ соединения ADODB -вроде определился уже (почему не OleDB - читайте здесь ) И потом, источник данных может быть в общем случае не обязательно БД, м.б. я файлы хочу отображать или например какие ключи в ветке реестра. Речь идет о "собственной сортировке" уже отображаемых данных (плевать откуда они там взялись). ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2013, 15:17 |
|
Как в ListView .Net хотя б добавить строчку с subitems (я пока не дошел до редактирования)
|
|||
---|---|---|---|
#18+
Дмитрий77fortibransa Дмитрий77 когда поймешь, то 5км не понадобится. Ну ты ж понял, дай код в 2 строчки, а я его пойму. Другой подход, совсем другой. Я не смотрю твои примеры (не в обиду) просто лень смотреть, вспоминать, разбираться. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2013, 15:30 |
|
Как в ListView .Net хотя б добавить строчку с subitems (я пока не дошел до редактирования)
|
|||
---|---|---|---|
#18+
fortibransaДругой подход, совсем другой... лень смотреть, вспоминать, разбираться. Потому что за этим у тебя стоят ТВОИ "5 км кода". Нет проблем, у меня теперь тоже 2 строчки. Код: vbnet 1. 2. 3.
Только я был вынужден допиливать за ленивых разработчиков контрола (с их больным извините воображением). ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2013, 15:39 |
|
Как в ListView .Net хотя б добавить строчку с subitems (я пока не дошел до редактирования)
|
|||
---|---|---|---|
#18+
Дмитрий77fortibransaДругой подход, совсем другой... лень смотреть, вспоминать, разбираться. Потому что за этим у тебя стоят ТВОИ "5 км кода". Нет проблем, у меня теперь тоже 2 строчки. Код: vbnet 1. 2. 3.
Только я был вынужден допиливать за ленивых разработчиков контрола (с их больным извините воображением).:) ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2013, 15:47 |
|
Как в ListView .Net хотя б добавить строчку с subitems (я пока не дошел до редактирования)
|
|||
---|---|---|---|
#18+
Дмитрий77Просто в VB6 был простой инструмент SortKey, здесь его не вижу, или я слепой. Контрол тот же самый (он Common Controls) -не доказывайте мне обратное, уже проверил. не сравнивай VB6 и .Net беда в том, что ты узко мыслишь что будешь делать когда понадобиться более сложноя сортировка? фреймворк тебе даёт возможность , а уж реализация зависит от тебя Дмитрий77БД -Access, способ соединения ADODB -вроде определился уже (почему не OleDB - читайте здесь ) полный бред, используется устаревшая технология, потому что автор не смог разобраться с новой ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2013, 16:33 |
|
Как в ListView .Net хотя б добавить строчку с subitems (я пока не дошел до редактирования)
|
|||
---|---|---|---|
#18+
pationДмитрий77БД -Access, способ соединения ADODB -вроде определился уже (почему не OleDB - читайте здесь ) полный бред, используется устаревшая технология, потому что автор не смог разобраться с новой Уважаемый, вот что я тебе скажу. Автор предпочитает использовать НАДЕЖНУЮ и годами ПРОВЕРЕННУЮ В РАБОТЕ технологию, которая удовлетворяет решению поставленной задачи. Пользователю надо чтоб программа надежно работала, ему плевать на новую технологию, используемую автором. Автор честно пытался использовать новую технологию. И сумел разобраться в отсутствии в новой технологии механизма, который обеспечит отказоустойчивось системы. AntonariyПроблема...в отсутствии в дотнте инструментов для обновления кэша. Мнению Antonariy я доверяю, и когда прочитав мои доводы он это сказал, аргументов в пользу "новейшей технологии" у меня не осталось. P.S. Понятный пример из жизни. Знаешь такую компанию МГТС? (никакого отношения к ней не имею, смотрю глазами пользователя) Они сейчас всем навязывают "новейшую технологию". Технология GPON Я очень хорошо отношусь к IP-телефонии и мои проги например с этим связаны, НО 1) Я не хочу остаться без обычного телефона 2) Мне не нужны геморои с их новейшим интернетом 3) Мне не нужен их китайский модем и дырка на стене в прихожей А по опыту тех кто с этим связался это минимальный букет который дает их "новейшая технология". Поэтому я предпочитаю "устаревшую" медную пару -она гарантирует мне ОТКАЗОУСТОЙЧИВОСТЬ. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2013, 17:25 |
|
Как в ListView .Net хотя б добавить строчку с subitems (я пока не дошел до редактирования)
|
|||
---|---|---|---|
#18+
Дмитрий77 Мнению Antonariy я доверяюНо проверяй. Иногда я опираюсь не на факты, а домыслы, типа "по логике должно быть эдак", и иногда они подводят. Дмитрий77 Технология GPON Я очень хорошо отношусь к IP-телефонии и мои проги например с этим связаны, НО 1) Я не хочу остаться без обычного телефона 2) Мне не нужны геморои с их новейшим интернетом 3) Мне не нужен их китайский модем и дырка на стене в прихожей А по опыту тех кто с этим связался это минимальный букет который дает их "новейшая технология".Я обладаю таким опытом. 1) Парни откусили лапшу от щитка и воткнули в модем. Для меня ничего не изменилось, обычный телефон как работал так и работает. 2) Никто не заставляет им пользоваться. Я не пользуюсь, у меня и так лучший провайдер в Москве. 3) Мне по барабану, хотя модем большой и уродский. Дмитрий77 Поэтому я предпочитаю "устаревшую" медную пару -она гарантирует мне ОТКАЗОУСТОЙЧИВОСТЬ.Вообще-то ненадежность медной лапши давно стала притчей во языцех. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2013, 18:05 |
|
Как в ListView .Net хотя б добавить строчку с subitems (я пока не дошел до редактирования)
|
|||
---|---|---|---|
#18+
Дмитрий77отказоустойчивось системы на mdb файлах..... ню-ню ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2013, 18:07 |
|
Как в ListView .Net хотя б добавить строчку с subitems (я пока не дошел до редактирования)
|
|||
---|---|---|---|
#18+
AntonariyНо проверяй. Иногда ... Ну, думаешь не проверяю? Я ж про твою adodb.dll накопал же (вроде) истину. 14942693 и так далее 3 поста. Ты так и не прокомментировал. А что касается ADODB и OleDB, насчет рассуждений с кэшем я пока не увидел здравых аргументов в пользу OleDB. А то что сказал ты звучит убедительно. SQL м.б. и лучше mdb. Но люди тут одной тонкости не понимают. Я взял отдельный exe (один из самых простых) из рабочего проекта, и переписываю его не спеша "с нуля" в среде .NET, при этом пытаясь максимально использовать .NET удобства. В образовательных (а там посмотрим) целях. При этом этот exe должен быть НЕ ХУЖЕ (в т.ч. внешне) существующего VB6 варианта и работать в составе существующей системы (без потери функционала), частью которой является база mdb (а с ней работают другие VB6 exe, кот. я переписывать под SQL понятно не собираюсь). Т.е. понимаешь, создать .NET exe, полностью совместимый с "системой" и НЕ ХУЖЕ. Использовать в этом exe OleDB вместо ADODB -это ".NET удобство", а менять Access (а mdb вполне устраивает) на что нибудь - это уже ломка "системы" -совершенно другая задача. И кстати еще не факт, что SQL будет лучше и там не возникнет подобных(или других) проблем. Но об этом просто НЕ ИДЕТ РЕЧИ на тек. момент. По поводу GPON это я так привел к примеру. Мой знакомый например получил роутер без положенного Wi-fi (а у него был стрим до этого), меня пытал весь вечер как по цепочке подключить к нему второй роутер (а это фиговый вариант). Потом видимо еще месяц пытал мгтс, чтоб дали другой роутер, результат не справшивал. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2013, 19:04 |
|
Как в ListView .Net хотя б добавить строчку с subitems (я пока не дошел до редактирования)
|
|||
---|---|---|---|
#18+
Дмитрий77AntonariyНо проверяй. Иногда ... Ну, думаешь не проверяю? Я ж про твою adodb.dll накопал же (вроде) истину. 14942693 и так далее 3 поста. Ты так и не прокомментировал.Я не хочу лезть в эти дебри. Я уже сказал, что поменял бы базу. Дмитрий77Автор предпочитает использовать НАДЕЖНУЮ и годами ПРОВЕРЕННУЮ В РАБОТЕ технологиюФишка в том, что годами она проверялась НЕ В ТВОИХ УСЛОВИЯХ. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2013, 22:08 |
|
Как в ListView .Net хотя б добавить строчку с subitems (я пока не дошел до редактирования)
|
|||
---|---|---|---|
#18+
AntonariyДмитрий77Автор предпочитает использовать НАДЕЖНУЮ и годами ПРОВЕРЕННУЮ В РАБОТЕ технологиюФишка в том, что годами она проверялась НЕ В ТВОИХ УСЛОВИЯХ. Не совсем понял что ты хотел сказать. Возможно хотел сказать "не с моей системой/програмой". Но я здесь скажу, что текущая технология проверялась действительно НЕ В МОИХ УСЛОВИЯХ, а на большом количестве компьютеров моих пользователей (которых я не знаю). Т.е. разные языковые настройки, разные OS (от XP до 12-х серверов), и если б что-то было сильно не так то мне бы об этом написали (хотя б по принципу 9 пошлют и забьют, а 10-й напишет). Но единственная претензия, связанная с базой была связана с одинарной кавычкой ( ' ) -ну это уж мой явный ляп был. А так все тихо с момента "внедрения". AntonariyЯ уже сказал, что поменял бы базу. Не думал об этом пока. Но, согласись, к "освоению .NET" это никакого отношения не имеет - это другая независимая тема. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2013, 22:53 |
|
Как в ListView .Net хотя б добавить строчку с subitems (я пока не дошел до редактирования)
|
|||
---|---|---|---|
#18+
Какая жесть. Автор, ты книг каких купил бы что ил. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2013, 23:02 |
|
Как в ListView .Net хотя б добавить строчку с subitems (я пока не дошел до редактирования)
|
|||
---|---|---|---|
#18+
Дмитрий77AntonariyЯ уже сказал, что поменял бы базу. Не думал об этом пока. Но, согласись, к "освоению .NET" это никакого отношения не имеет - это другая независимая тема.Имеет. Дотнет имеет представление об особенностях некоторых видов баз, и пару новых баз, заточенных под дотнет. А об аксессе не имеет. Поэтому ты вынужден цепляться за старые технологии, учитывающие эти особенности. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2013, 07:51 |
|
Как в ListView .Net хотя б добавить строчку с subitems (я пока не дошел до редактирования)
|
|||
---|---|---|---|
#18+
AntonariyДмитрий77пропущено... Не думал об этом пока. Но, согласись, к "освоению .NET" это никакого отношения не имеет - это другая независимая тема.Имеет. Дотнет имеет представление об особенностях некоторых видов баз, и пару новых баз, заточенных под дотнет. А об аксессе не имеет. Поэтому ты вынужден цепляться за старые технологии, учитывающие эти особенности.Во +100500. Я тоже в свое время ратовал за mdb мол ни чо инсталировать не надо, jet в каждой винде есть, а тут бац а в 7-ке уже нету jet. SQLEXPRESS ни о каких кэшах нет ни какой речи, когда генерится типизированный DataSet в команды типа UPDATE, INSERT выглядет так "UPDATE SET...;SELECT..." и все чудно всегда, всегда все возвращается как надо. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2013, 08:05 |
|
|
start [/forum/topic.php?fid=20&tid=1403894]: |
0ms |
get settings: |
14ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
60ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
59ms |
get tp. blocked users: |
1ms |
others: | 316ms |
total: | 483ms |
0 / 0 |