|
Индексированные контроллы в 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 |
|
Индексированные контроллы в Vb.Net
|
|||
---|---|---|---|
#18+
D129, Что интересно, мне как раз ничего не надо и все более менее устраивает. И не я топик создавал.😏 ... |
|||
:
Нравится:
Не нравится:
|
|||
15.04.2015, 18:49 |
|
Индексированные контроллы в Vb.Net
|
|||
---|---|---|---|
#18+
Дмитрий77И не я топик создавалНет уж позвольте!! ... |
|||
:
Нравится:
Не нравится:
|
|||
15.04.2015, 19:10 |
|
Индексированные контроллы в Vb.Net
|
|||
---|---|---|---|
#18+
Shocker.Pro, но ведь правда не я. Было что сказать, я написал. А дискутировать и что-то кому то доказывать На эту тему ну правда, не интересно. Отвечаю только от нечего делать, еду в метро а тут wi-fi халявный. Круто. Да и телефон новый освоить же надо. О, смайлики надо попробовать. 😃😊😞😉 📞 📞 📞 📞 📱 📞 📱🚉🚉🚉 🚽🚹🚺🚻 круто ... |
|||
:
Нравится:
Не нравится:
|
|||
15.04.2015, 21:16 |
|
Индексированные контроллы в Vb.Net
|
|||
---|---|---|---|
#18+
Дмитрий77Вопрос был про массивы контролов. Ответ: в .Net так нельзя. Как это, как это? Код: 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
15.04.2015, 22:53 |
|
Индексированные контроллы в Vb.Net
|
|||
---|---|---|---|
#18+
Ах да. Eсли контролы уже готовы Код: vbnet 1. 2.
Код: c# 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
15.04.2015, 22:59 |
|
Индексированные контроллы в Vb.Net
|
|||
---|---|---|---|
#18+
Cat2, речь шла про VB6 и VB.Net ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2015, 08:48 |
|
Индексированные контроллы в Vb.Net
|
|||
---|---|---|---|
#18+
Slava_PskCat2, речь шла про VB6 и VB.Net Так что , на странице https://msdn.microsoft.com/ru-ru/library/wak0wfyt.aspx врут с примером? Код: c# 1.
Я так глянул, что List тоже в VB/NEt присутствует. Его использовать даже предпочтительнее. Не нашел никаких запрещений загонять контролы в массив или коллекцию ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2015, 21:09 |
|
Индексированные контроллы в Vb.Net
|
|||
---|---|---|---|
#18+
Cat2, так я и привел пример этого 17518231 ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2015, 09:02 |
|
Индексированные контроллы в Vb.Net
|
|||
---|---|---|---|
#18+
Antonariy, Вставляю ваш код, жалуется тип CmmandButton не определен? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2015, 12:51 |
|
Индексированные контроллы в Vb.Net
|
|||
---|---|---|---|
#18+
Slava_PskВставляю ваш код, жалуется тип CmmandButton не определен?походу, куда-то не туда вставил ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2015, 12:53 |
|
Индексированные контроллы в Vb.Net
|
|||
---|---|---|---|
#18+
Shocker.Pro, видимо это для VB6? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2015, 13:15 |
|
Индексированные контроллы в Vb.Net
|
|||
---|---|---|---|
#18+
Slava_PskShocker.Pro, видимо это для VB6?да ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2015, 13:26 |
|
Индексированные контроллы в Vb.Net
|
|||
---|---|---|---|
#18+
Cat2, Не получается сделать тоже в VB.Net относительно обработки события Click для массиива контролов . Не поможете, пожалуйста? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2015, 13:30 |
|
Индексированные контроллы в Vb.Net
|
|||
---|---|---|---|
#18+
Cat2Дмитрий77Вопрос был про массивы контролов. Ответ: в .Net так нельзя. Как это, как это? Код: 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.
Интересует коллекция, массив PictureBox и отработка на них Click в VB.net ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2015, 13:34 |
|
Индексированные контроллы в Vb.Net
|
|||
---|---|---|---|
#18+
Slava_PskИнтересует коллекция, массив PictureBox и отработка на них Click в VB.netа в чем будет принципиальная разница с приведенным примером? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2015, 13:42 |
|
Индексированные контроллы в Vb.Net
|
|||
---|---|---|---|
#18+
Shocker.Pro, Данный пример на С. .Click в Vb.Net для элемента массива контролов не проходит. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2015, 13:47 |
|
Индексированные контроллы в 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. 24. 25. 26. 27. 28. 29.
... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2015, 15:07 |
|
Индексированные контроллы в Vb.Net
|
|||
---|---|---|---|
#18+
Вот видите, стоит немного подумать и никакая помощь не нужна. Хотя не вижу чем Ваше решение принципиально отличается от моего примера, кроме того, что у меня более быстрое добавление контролов на форму за счет AddRange/ Slava_Psk Код: vbnet 1.
А это-то зачем? Смысл добавлять массив из одного элемента? Наверняка достаточно Код: vbnet 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
11.05.2015, 14:36 |
|
Индексированные контроллы в Vb.Net
|
|||
---|---|---|---|
#18+
и нафига нужен PicArray? в vb6 он нужен был лишь для обработки одним хендлером событий нескольких контролов без лишних телодвижений, а в дотнете появилась возможность назначать хендлер кодом, которой не было в шестерке. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.05.2015, 23:21 |
|
Индексированные контроллы в Vb.Net
|
|||
---|---|---|---|
#18+
Добрый день, прошу помощи знатоков. Программно создаю коллекцию PictureBox и прописываю связанные с ее элементами события. Событие Click нормально отрабатывает, т.е. при клике можно идентифицировать элемент коллекции. Событие MouseHover отрабатывает при наведении указателя мышки на PictureBox, но никак не удается идентифицировать номер элемента коллекции. Помогите пожалуйста разобраться. В планах есть прописать и другие события для элементов коллекции. Вот код: Код: 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
24.08.2016, 11:13 |
|
Индексированные контроллы в Vb.Net
|
|||
---|---|---|---|
#18+
Cramper, в PicArray(30) и ищите sender, который первым параметром в обработчике события ... |
|||
:
Нравится:
Не нравится:
|
|||
24.08.2016, 11:45 |
|
|
start [/forum/topic.php?all=1&fid=20&tid=1400380]: |
0ms |
get settings: |
7ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
57ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
78ms |
get tp. blocked users: |
1ms |
others: | 286ms |
total: | 462ms |
0 / 0 |