![]() |
Модераторы: gambit, Partizan |
![]() ![]() ![]() |
|
SmartBye |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 60 Регистрация: 15.5.2008 Репутация: нет Всего: нет |
Делаю программу, в которой решил, что каждая функция программы будет в отдельном табе. Т.е. программа сама по себе - один табконтрол, а функции в отдельных классах-табпейджах, которые я просто при загрузке программы добавляю туда.
Хотелось бы узнать, можно ли как-то визуально спроектировать этот таб пейдж? Как будто я работаю с формой. Т.е. передо мной табпейдж, я кидаю в него кнопки, боксы и т.д., расставляю их мышкой и пишу код. Просто не хочется писать всю эту дребедень вручную( Попробовал сделать так: добавил в проект новый компонент, унаследовал его от таб пейджа, кинул на него кнопку для теста. Затем добавил на главной форме этот класс-компонент в таб контрол, но он оказался девственно чист =/ Подскажите, как удобнее это сделать? |
|||
|
||||
diadiavova |
|
|||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 16 Всего: 142 |
Создай контрол на базе UserControl'а, а на нужный табпэйдж кидай уже его.
-------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит ![]() |
|||
|
||||
SmartBye |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 60 Регистрация: 15.5.2008 Репутация: нет Всего: нет |
Не очень понял мысль.
Мне нужно сделать так, что бы на главной странице был только табконтрол оригинальный и пустой. А в самом проекте были классы-компоненты (или что-то подобное) табпейджей, которые я просто добавлю в главной программе через usercontrol1.tabs.Add(new mytabpage1()); usercontrol1.tabs.Add(new mytabpage2()) и т.д. Это можно реализовать, если просто создать класс, унаследовав его от таб пейджа, но тогда приходится всю гуевскую работу прописывать вручную. |
|||
|
||||
diadiavova |
|
|||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 16 Всего: 142 |
Если тебе надо работу выполнить в дизайнере, то сделай всё на юзерконтроле? свойству Dock присвой значение Fill, а потом добавь его на табпэйдж(в коде).
-------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит ![]() |
|||
|
||||
SmartBye |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 60 Регистрация: 15.5.2008 Репутация: нет Всего: нет |
Создал два компонента, один из них наследованный от таб пейджа, другой от юзерконтрола. На юзер контрол накидал кнопочек для теста. Вот только теперь не пойму, как добавить юзер контрол на таб пейдж =/
|
|||
|
||||
diadiavova |
|
|||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 16 Всего: 142 |
Примерно так. -------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит ![]() |
|||
|
||||
SmartBye |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 60 Регистрация: 15.5.2008 Репутация: нет Всего: нет |
Написав этот код, любой компонент на юзерконтроле вызывает исключение переполнения стека (+ [System.StackOverflowException] {Невозможно вычислить выражение, поскольку текущий поток находится в состоянии переполнения стека.} System.StackOverflowException), а если не добавлять компонентов на него, то исключение выбрасывает public MyTabPage() =(
|
|||
|
||||
diadiavova |
|
|||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 16 Всего: 142 |
Погоди, сейчас попробую
Добавлено через 13 минут и 33 секунды Всё работает. Там в коде я просто букафки местами поменял(опечатка, contetn вместо content), так что если скопипастить, то будет ошибка. Присоединённый файл ( Кол-во скачиваний: 13 ) ![]() -------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит ![]() |
|||
|
||||
SmartBye |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 60 Регистрация: 15.5.2008 Репутация: нет Всего: нет |
Ну я, естественно, не копипастил. Просто привел аналогию с твоим кодом. Сейчас попробую описать оба класса в ручную, что бы не добавилось чего лишнего.
|
|||
|
||||
diadiavova |
|
|||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 16 Всего: 142 |
А чо пример не посмотрел?
Это сообщение отредактировал(а) diadiavova - 26.2.2009, 22:00 -------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит ![]() |
|||
|
||||
SmartBye |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 60 Регистрация: 15.5.2008 Репутация: нет Всего: нет |
Сделал аналогично, как у тебя в примере, вроде получилось. Спасибо.
Но как-то оно все накручено больно. Я когда обдумывал все это, думал что должно получиться все более прозрачно. Может это вообще неправильный способ? А есть какой-то более подходящий? Кстати, насколько я знаю, делать вложенные классы не очень хорошо. Как-то можно избавиться от этого? |
|||
|
||||
diadiavova |
|
|||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 16 Всего: 142 |
Это не вложенные классы. А использование контейнеров - нормальная вещь(кстати: сама вкладка - тоже контейнер, и табконтрол - тоже). Если что-то смущает, то есть другой способ. Создаёшь нужный контент в юзверьконтроле, а потом копируешь код, сгенерированный дизайнером и вставляешь куда надо.
-------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит ![]() |
|||
|
||||
SmartBye |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 60 Регистрация: 15.5.2008 Репутация: нет Всего: нет |
Смущает то, что в юзер контроле находится таб пейдж, а не наоборот.
Ну этот код будет совсем неподдерживаемым =/ |
||||
|
|||||
diadiavova |
|
|||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 16 Всего: 142 |
А почему он у тебя там находится? ![]() А чем он отличается от того, который ты можешь "ручками" написать? -------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит ![]() |
|||
|
||||
SmartBye |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 60 Регистрация: 15.5.2008 Репутация: нет Всего: нет |
Ой... Не туда посмотрел. Показалось, что таб пейдж вложен в юзер контрол =) Потому и понять ничего не мог =) Присмотрелся, вынес таб пейдж в отдельный файл и все понятно стало.
Ну когда одна кнопочка на форме - это еще куда ни шло, а вот когда там много компонентов, то просто неприятно будет в этом копаться. Потому и встала проблема, что бы все это дело визуально редактировать. |
|||
|
||||
![]() ![]() ![]() |
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Разработка Windows Forms | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |