
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
25.05.2006, 11:11
|
|||
|---|---|---|---|
|
|||
Как увидеть из контрола в дизайн-тайме обьекты контейнера |
|||
|
#18+
Поставили задачу написать контрол с PropertyPage, чтоб в нем можно было работать с формой-контейнером В ДИЗАЙН ТАЙМЕ. Ну и цветовым индикатором там сигнализировать допустим - есть ли на форме ВСЕ необходимые элементы для работы этого контрола. А не вижу в дизайн-тайме формы-контейнера.... Кто-нидь чего-нидь подскажет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.05.2006, 11:55
|
|||
|---|---|---|---|
Как увидеть из контрола в дизайн-тайме обьекты контейнера |
|||
|
#18+
Поиск всех ImageList-ов на хозяине UserControl-а, заполнение выпадающего списка их именами: Код: plaintext 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.05.2006, 13:16
|
|||
|---|---|---|---|
|
|||
Как увидеть из контрола в дизайн-тайме обьекты контейнера |
|||
|
#18+
Ссылка Y вашим способом "UserControl.ParentControls(0)" на форму контейнер получается отлично. Только я видимо туплю уже и не пойму почему я не могу получить прямо из контрола перечисление всех обьектов X формы: ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.05.2006, 13:31
|
|||
|---|---|---|---|
|
|||
Как увидеть из контрола в дизайн-тайме обьекты контейнера |
|||
|
#18+
Удивительно также, что из PropertyPage ЭТИМ ЖЕ СПОСОБОМ перечисление контролов на форме выполнить получается... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.05.2006, 13:47
|
|||
|---|---|---|---|
Как увидеть из контрола в дизайн-тайме обьекты контейнера |
|||
|
#18+
sysadm2000, я не понял вопроса. В модуле UserControl-а можно напрямую обратиться к элементам управления хозяина, коллекция ParentControls содержит 0-м элементом хозяина, затем идут "детки": Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.05.2006, 13:48
|
|||
|---|---|---|---|
Как увидеть из контрола в дизайн-тайме обьекты контейнера |
|||
|
#18+
И второго вопроса не понял - почему удивительно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.05.2006, 15:21
|
|||
|---|---|---|---|
|
|||
Как увидеть из контрола в дизайн-тайме обьекты контейнера |
|||
|
#18+
Код: plaintext Вообще уже получилась такая PropertyPage. Код: plaintext 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. Соотвественно контрол имеет свойства Код: plaintext 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. И вот теперь-то в контроле надо манипулировать с обьктами формы - имена их уже есть - их выбрал юзер в Дизайн-тайме, а сослаться на них из контрола не могу. Вижу только ссылку на форму. Не могу перечислить контролы на контейнере (по выбранным юзером именам) - и дальше собственно начать смысловой алгоритм контрола. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.05.2006, 16:37
|
|||
|---|---|---|---|
Как увидеть из контрола в дизайн-тайме обьекты контейнера |
|||
|
#18+
"Не вижу" - это что, в ParentControls кроме формы ничего нет? Вот, обсуждал недавно на другом форуме . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.05.2006, 16:40
|
|||
|---|---|---|---|
Как увидеть из контрола в дизайн-тайме обьекты контейнера |
|||
|
#18+
Кстати, в Property Let неполохо бы вставлять PropertyChanged "ИмяСвойства". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.05.2006, 17:10
|
|||
|---|---|---|---|
|
|||
Как увидеть из контрола в дизайн-тайме обьекты контейнера |
|||
|
#18+
Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.05.2006, 17:39
|
|||
|---|---|---|---|
|
|||
Как увидеть из контрола в дизайн-тайме обьекты контейнера |
|||
|
#18+
Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.05.2006, 17:45
|
|||
|---|---|---|---|
|
|||
Как увидеть из контрола в дизайн-тайме обьекты контейнера |
|||
|
#18+
Т.е. в PropertyPage я увидел все элементы формы, с которыми должен работать алгоритм контрола(как видите - все комбешники в PropertyPage заполнены), передал их в контрол и.... как дальше вычитать значения из сеток и собственно начать довольно таки нехилый алгоритм контрола, если, увы, эти имена бесполезны - из самого контрола я не вижу ничего в контейнере... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.05.2006, 17:49
|
|||
|---|---|---|---|
Как увидеть из контрола в дизайн-тайме обьекты контейнера |
|||
|
#18+
Что-то не в порядке в Датском королевстве. Можешь сделать тестовый проект - я повожусь вечером? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.05.2006, 17:56
|
|||
|---|---|---|---|
|
|||
Как увидеть из контрола в дизайн-тайме обьекты контейнера |
|||
|
#18+
Ща все в рабочем проекте - тут сотни форм, контролов, коннектов, репортов и всего-всего... Ща в вырежу этот конкретный момент в отдельный проект и выложу его прямо сюда в исходниках... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.05.2006, 18:14
|
|||
|---|---|---|---|
|
|||
Как увидеть из контрола в дизайн-тайме обьекты контейнера |
|||
|
#18+
Готово - тестовый проект во вложении. Чтобы быстрее вспомнить отладку Дизайн-тайма напомню: запускать его не надо. Сначала надо открыть контрол и в нем поставить BREAK на точке Print X.Name (перечисление всего что видно на форме). После чего в IDE просто открывать форму... И наблюдать за значением X... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.05.2006, 18:23
|
|||
|---|---|---|---|
|
|||
Как увидеть из контрола в дизайн-тайме обьекты контейнера |
|||
|
#18+
В этом контроле вообще нетривиальная идея задумана - визуальный код возврата - зеленый квадрат или красный. Типа если контролу все необходимое есть на форме и в библиотеках - он видим на форме как зеленый, а если чего-то не хватает - то как красный (эти рисунки и содержит его единственный элемент ImageList). В целом же в рантайме этот контрол должен держать в себе УНИВЕРСАЛЬНЫЙ алгоритм редактирования размещеных на форме сеток, отражающих отношения типа многие-ко-многим. Со всякими наворотами типа UNDO и тд. В общем тут еще начать и кончить... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.05.2006, 18:39
|
|||
|---|---|---|---|
Как увидеть из контрола в дизайн-тайме обьекты контейнера |
|||
|
#18+
Как говорится - век учись. При переносе кода из ReadProperties в Show или Paint список выводится. Очевидно, это свойство MDI child-формы, потому что с обычной формой такого не наблюдается. По-видимому, это связано с порядком создания элементов управления на форме. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.05.2006, 18:59
|
|||
|---|---|---|---|
|
|||
Как увидеть из контрола в дизайн-тайме обьекты контейнера |
|||
|
#18+
Ни когда бы не додумался что перечисление КОТОРОГО НЕТ ВООБЩЕ в UserControl_ReadProperties может ВДРУГ появится в UserControl_Show. За что и ненавижу шестерку за ее непредсказуемость. В семерке ВЕСЬ обслуживающий служебный код явно виден в FORM.DESIGNER.VB, куда я довольно часто ЯВНО и сам вношу изменения (например делаю что-то из FRIEND - PUBLIC). Никаких детских нежиданностей вроде этой БЫТЬ ПРОСТО НЕ МОЖЕТ - к тому же в VB.NET весь вспомогательный код трассируется в отладчике ЯВНО и явно видны все преобразования в нем.... Мда.... Ну и дела.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.05.2006, 19:02
|
|||
|---|---|---|---|
|
|||
Как увидеть из контрола в дизайн-тайме обьекты контейнера |
|||
|
#18+
Кстати я не увидел привязку этого бага к MDIChild - Если снять этот флаг - ничего не меняется ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.05.2006, 19:10
|
|||
|---|---|---|---|
|
|||
Как увидеть из контрола в дизайн-тайме обьекты контейнера |
|||
|
#18+
Еще один прикол - после выполнения перечисления в SHOW: ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.05.2006, 19:11
|
|||
|---|---|---|---|
Как увидеть из контрола в дизайн-тайме обьекты контейнера |
|||
|
#18+
Перечисление (коллекция) есть и работает формально нормально - что есть на данный момент, то и показывает. Другое дело, когда элементы добавляются в коллекцию - вот тут могут быть претензии. Обрати внимание - если добавить сейчас на форму кнопку, она покажется в списке даже в ReadProperties. Т.е. дело в creation order-е. С 7-кой не работал, сказать ничего не могу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.05.2006, 19:25
|
|||
|---|---|---|---|
|
|||
Как увидеть из контрола в дизайн-тайме обьекты контейнера |
|||
|
#18+
Ну это еще интереснее - т.е. перечисляется часть коллекции в зависимости от порядка добавления контролов на форму - только то, что добавлено ПОЗЖЕ контрола.... Ну а у меня ж изначальная постановка задачи - привязатся контролом к УЖЕ лежашим на форме кнопкам - и ответить визуальным значком - всех ли там кнопок и сеток достаточно для начала работы замороченного-презамороченного алгоритма... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.05.2006, 19:32
|
|||
|---|---|---|---|
|
|||
Как увидеть из контрола в дизайн-тайме обьекты контейнера |
|||
|
#18+
OFF. Шарюсь в инете в поисках способы решения проблемы топика и наткнулся здесь http://ru.infocom.uz/more.php?id=131_0_1_0_M на такую цитату: Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
26.05.2006, 02:08
|
|||
|---|---|---|---|
Как увидеть из контрола в дизайн-тайме обьекты контейнера |
|||
|
#18+
Да, MDIchild или нет, не влияет. Только порядок создания. В общем, резон в том, что в момент ReadProperties не все элементы управления созданы, есть. То, что упала в Show, бывает, главное, чтобы стабильно этого не делала. "Шарить" по форме надо позже ReadProperties, когда создано всё; до Paint-а вообще можно "курить". Но Paint также может быть не лучшим местом - похоже, надо делать явно вызываемый метод обновления (а Paint может его дёргать). Такой метод теоретически может пригодиться, если ты захочешь сделать а) plug-in, отслеживающий в design-time добавление элементов управления на форму, и сообщающий об этом UserControl-у (не спрашивай - никогда не делал), и б) создание элементов управления на форме в run-time. =sysadm2000Шарюсь в инете в поисках способы решения проблемы топика и наткнулся здесь http://ru.infocom.uz/more.php?id=131_0_1_0_M ... Забавно, но эту страницу я недавно видел. Автор не пробовал запускать своё творение в скомпилированном виде, либо пробовал, но решил промолчать, что из этого вышло. =sysadm2000Хорошо, а как быть тем ... Как быть? Я для себя этот вопрос решил, когда работал за границей, в аналогичных условиях - отставшие от жизни, но лицензионные средства разработки. Я считаю, что это умение работать с теми инструментами, что есть - часть профессионализма. Может, звучит пафосно, но потом пригодилось и до сих пор пригождается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=60&mobile=1&tid=2165808]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
69ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
74ms |
get tp. blocked users: |
2ms |
| others: | 246ms |
| total: | 435ms |

| 0 / 0 |
