|
Индексированные контроллы в Vb.Net
|
|||
---|---|---|---|
#18+
В VB6 имеется возможность создания индексированных контролов, например Label1(i), что очень удобно. В Vb.Net я делаю это так: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
Что не очень удобно и красиво. Есть ли другие варианты? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.04.2015, 09:07 |
|
Индексированные контроллы в Vb.Net
|
|||
---|---|---|---|
#18+
Slava_PskВ VB6 ...... например Label1(i), что очень удобнодостаточно неудобно, но это - единственный способ использовать обработчик событий на заранее неизвестном количестве стандартных контролов, то бишь заплатка, покрывающая отсутствие возможности динамически вешать события. В .NET этого нет из-за того, что такая возможность есть. Так что надо просто сменить подход к задаче, не ориентируясь на костыль VB6 ... |
|||
:
Нравится:
Не нравится:
|
|||
15.04.2015, 09:15 |
|
Индексированные контроллы в Vb.Net
|
|||
---|---|---|---|
#18+
Shocker.Pro, не могли бы дать пример или наводку? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.04.2015, 09:31 |
|
Индексированные контроллы в Vb.Net
|
|||
---|---|---|---|
#18+
Shocker.Pro, Костыль не костыль, но мне из за этого приходится много переписывать, а некоторые коды тупо размножать (потому что это местами проще и понятнее). А на некоторые общие ф-ции дописывать куски, определяющие "индекс", которые больше самого собственно кода который по делу. Вешать по куче хандлов на одну ф-цию, а потом мудохаться с CType(sender, Control) далеко не всегда удобно. Вот если б было оба варианта, было бы хорошо. Я так скажу, у каждого способа свои преимущества и свои недостатки. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.04.2015, 10:25 |
|
Индексированные контроллы в Vb.Net
|
|||
---|---|---|---|
#18+
Вот чего хорошо в .Net так это то что в VB6 нельзя сделать более 256 контролов на форме. И индексы (в ущерб удобности) хоть немного эту ситуацию разруливали, хотя меня в одном из проектов последнее время это уже плохо спасало. В .Net по крайней мере такого ограничения нет, рисуй себе Label1 - Label10000 в удовольствие, при этом только надо не забыть (если нужно событие) 10000 раз через запятую написать Handles1... Handles10000. "Удобство" налицо. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.04.2015, 10:39 |
|
Индексированные контроллы в Vb.Net
|
|||
---|---|---|---|
#18+
Дмитрий77Вот чего хорошо в .Net так это то что в VB6 нельзя сделать более 256 контролов на форме. И индексы (в ущерб удобности) хоть немного эту ситуацию разруливали, хотя меня в одном из проектов последнее время это уже плохо спасало. В .Net по крайней мере такого ограничения нет, рисуй себе Label1 - Label10000 в удовольствие, при этом только надо не забыть (если нужно событие) 10000 раз через запятую написать Handles1... Handles10000. "Удобство" налицо.Элементарный LINQ-запрос к Control.Controls Property поможет. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.04.2015, 10:52 |
|
Индексированные контроллы в Vb.Net
|
|||
---|---|---|---|
#18+
Дмитрий77, не очень понимаю, как это делается. Вы не могли бы маленький примерчик? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.04.2015, 10:57 |
|
Индексированные контроллы в Vb.Net
|
|||
---|---|---|---|
#18+
Slava_Psk, Делается что? Событие на 10000 кнопок вешается? Код: vbnet 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
15.04.2015, 11:23 |
|
Индексированные контроллы в Vb.Net
|
|||
---|---|---|---|
#18+
Большое спасибо всем. Меня устроит такой вариант: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23.
... |
|||
:
Нравится:
Не нравится:
|
|||
15.04.2015, 13:38 |
|
Индексированные контроллы в Vb.Net
|
|||
---|---|---|---|
#18+
Shocker.Proно это - единственный способ использовать обработчик событий на заранее неизвестном количестве стандартных контроловВоловиц, ты ацтой :) (с) Код: 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
15.04.2015, 14:22 |
|
Индексированные контроллы в Vb.Net
|
|||
---|---|---|---|
#18+
Дмитрий77Slava_Psk, Делается что? Событие на 10000 кнопок вешается? Код: vbnet 1. 2. 3.
ты тоже :) Код: vbnet 1. 2. 3. 4.
или вообще так: Код: vbnet 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
15.04.2015, 14:42 |
|
Индексированные контроллы в Vb.Net
|
|||
---|---|---|---|
#18+
AntonariyShocker.Proно это - единственный способ использовать обработчик событий на заранее неизвестном количестве стандартных контроловВоловиц, ты ацтой :) (с)изящно я делал немного иначе - обертывал в свой юзерконтрол (все равно нужна была дополнительная функциональность) ... |
|||
:
Нравится:
Не нравится:
|
|||
15.04.2015, 15:00 |
|
Индексированные контроллы в Vb.Net
|
|||
---|---|---|---|
#18+
Дмитрий77Вот чего хорошо в .Net так это то что в VB6 нельзя сделать более 256 контролов на форме. И индексы (в ущерб удобности) хоть немного эту ситуацию разруливали, хотя меня в одном из проектов последнее время это уже плохо спасало. В .Net по крайней мере такого ограничения нет, рисуй себе Label1 - Label10000 в удовольствие, при этом только надо не забыть (если нужно событие) 10000 раз через запятую написать Handles1... Handles10000. "Удобство" налицо. Не напоролись еще? - нельзя в винформах сделать 10000 контролов. Ограничение системы - дает (в зависимости от мощности машины) - 1600 - 2500 хендлов. Потом эксепшен. Ну и так делать нельзя. контролы - они для человека, чтобы видел, нажимал. То есть - надо разделять отображение и данные. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.04.2015, 15:10 |
|
Индексированные контроллы в Vb.Net
|
|||
---|---|---|---|
#18+
D129, У меня в форме настроек где-то 35 узлов дерева, каждому узлу соответствует вкладка - ну сколько со всеми рамками 10-20-30 вряд ли больше. В VB6 я балансировал на грани, при этом использовались массивы Label, TextBox и т.п. - причем Text(1) и Text(2) например могли быть абсолютно разного смысла. В .Net воспроизвел тоже самое, контролов думаю стало еще больше (не отказывал себе в панелях и прочем для простоты конфигурирования расположения и т.п.). Ну, нет, пока не напоролся. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.04.2015, 15:26 |
|
Индексированные контроллы в Vb.Net
|
|||
---|---|---|---|
#18+
я в таких случаях оформлял вкладки как юзерконтролы и подгружал их динамически на форму при выборе из дерева ... |
|||
:
Нравится:
Не нравится:
|
|||
15.04.2015, 15:33 |
|
Индексированные контроллы в Vb.Net
|
|||
---|---|---|---|
#18+
Дмитрий77 35 узлов дерева Не имеет смысла создавать и хранить то, что в данный момент невидимо (может пользователь и не будет это открывать). Надо делать типа окно просмотра - и создавать контролы в момент обращения. На винформах это можно делать с помощью рефлексии. А как раз на WPF это более естественно организуется - хотя и не элементарно (потому, что это и не есть элементарно). Когда задаются стили и шаблоны элементов коллекции - а сами стили и шаблоны выбираются в зависимости от типа данных. И в одном списке может быть разная визуализация для разных классов. И тут уже привязки (binding) - наше всё... ... |
|||
:
Нравится:
Не нравится:
|
|||
15.04.2015, 15:39 |
|
Индексированные контроллы в Vb.Net
|
|||
---|---|---|---|
#18+
Shocker.ProAntonariyпропущено... Воловиц, ты ацтой :) (с)изящно я делал немного иначе - обертывал в свой юзерконтрол (все равно нужна была дополнительная функциональность)из изящного тут только Код: vbnet 1. 2.
поскольку я догадался об этом лишь сейчас. но с архитектурной точки зрения это говнокод, поскольку жестко увязывает clsButton и форму. а обычно для этого используется класс-коллекция, которая имеет собственное событие ButtonClick, на которое подписывается форма, эта коллекция передается в clsButton, и кнопка дергает ее метод. а еще можно вместо событий использовать интерфейсы. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.04.2015, 15:39 |
|
Индексированные контроллы в Vb.Net
|
|||
---|---|---|---|
#18+
Shocker.Proя в таких случаях оформлял вкладки как юзерконтролы и подгружал их динамически на форму при выборе из дерева :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
15.04.2015, 15:39 |
|
Индексированные контроллы в Vb.Net
|
|||
---|---|---|---|
#18+
Какая разница, юзерконтролы, вкладки, подгружать не подгружать. Когда делал впервые, не было Treview, на одной плоской форме все в 3-х рамках помещалось. Потом дерево с 5-ю узлами появилось. Не глючит, работает, не тормозит, смотрится хорошо, бабло капает. Че еще надо. Вопрос был про массивы контролов. Ответ: в .Net так нельзя. Для 3-х однотипных ListView удобнее индекс нежели 3 разных ника. Мое мнение такое. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.04.2015, 16:37 |
|
Индексированные контроллы в Vb.Net
|
|||
---|---|---|---|
#18+
Antonariyа обычно для этого используется класс-коллекция, которая имеет собственное событие ButtonClick, на которое подписывается форма, эта коллекция передается в clsButton, и кнопка дергает ее метод. а еще можно вместо событий использовать интерфейсы.само собой, у меня есть коллектор событий, я про идею коллекции классов-оберток ... |
|||
:
Нравится:
Не нравится:
|
|||
15.04.2015, 17:21 |
|
Индексированные контроллы в Vb.Net
|
|||
---|---|---|---|
#18+
D129Shocker.Proя в таких случаях оформлял вкладки как юзерконтролы и подгружал их динамически на форму при выборе из дерева :-)а что, собственно, в этом смешного? ) Дмитрий77Какая разница, юзерконтролы, вкладки, подгружать не подгружать.разница как раз в ограничениях на количество контролов ... |
|||
:
Нравится:
Не нравится:
|
|||
15.04.2015, 17:23 |
|
Индексированные контроллы в Vb.Net
|
|||
---|---|---|---|
#18+
Дмитрий77Какая разница, юзерконтролы, вкладки, подгружать не подгружать. Когда делал впервые, не было Treview, на одной плоской форме все в 3-х рамках помещалось. Потом дерево с 5-ю узлами появилось. Не глючит, работает, не тормозит, смотрится хорошо, бабло капает. Че еще надо. Вопрос был про массивы контролов. Ответ: в .Net так нельзя. Для 3-х однотипных ListView удобнее индекс нежели 3 разных ника. Мое мнение такое. Есть разница. Я чинил проэкт, который рожал вкладку в таб контроле для каждой строки в базе и заполнял там все текстбоксы (штук 15-20) данными. Пока строк в базе (при тестировании) было 10-20 - все работало. Когда дали на продакшен - а там "аж" 400 строк - обвалилось. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.04.2015, 18:28 |
|
Индексированные контроллы в Vb.Net
|
|||
---|---|---|---|
#18+
Shocker.Proа что, собственно, в этом смешного? а, я неправильно выразился - думал поставить +1. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.04.2015, 18:29 |
|
Индексированные контроллы в Vb.Net
|
|||
---|---|---|---|
#18+
Дмитрий77Для 3-х однотипных ListView удобнее индекс нежели 3 разных ника. Мое мнение такое. Для подобных извращений есть атрибуты. Пометьте атрибутом с конструктором, в котором давайте контролам индекс. Раз уж вам так надо.... ... |
|||
:
Нравится:
Не нравится:
|
|||
15.04.2015, 18:32 |
|
|
start [/forum/search_topic.php?author=IronAlbor&author_mode=last_posts&do_search=1]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
get settings: |
9ms |
get forum list: |
14ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
46ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
59ms |
get tp. blocked users: |
1ms |
others: | 867ms |
total: | 1061ms |
0 / 0 |