|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
31.07.2013, 09:06 | #1 |
Пользователь
Регистрация: 20.07.2013
Сообщений: 18
|
С# Вывести WindowsForm на закладку TabPage
Здравствуйте!
Идея такая оформить(разместить DataGrid, кнопки) Windows Forms и показать ее на закладке TabPage другой формы. Есть проект, состоит он из двух Windows Forms. Одна форма является главной на ней TabControl. //Создаю закладку TabPage TabPageRn = new TabPage(); TabPageRn.Name = "rn"; TabPageRn.Text = "Расходные накладные"; //Добавляю закладку tabControl1.TabPages.Add(TabPageRn) ; //Вторая форма FormRn f_rn = new FormRn(); //Пытаюсь добавить на закладку tabControl1.TabPages[tabControl1.SelectedIndex].Controls.Add(f_rn) При попытке добавить получается ошибка - "Элемент верхнего уровня нельзя добавлять к элементу управления". Оно и понятно что коллекция Controls содержит элементы управления, а не формы. Возможно ли как то реализовать данную функцию? Просто скопировать коллекцию Controls из формы 2 на закладку не вариант, на форме два будут процедуры. Заранее благодарю. |
31.07.2013, 09:29 | #2 |
Старожил
Регистрация: 25.08.2011
Сообщений: 2,841
|
Сделайте в классе второй формы открытый метод который получает или задает определенную вкладку.
Я делал так: Создавал контрол, нужный. Делал нужные настройки и задавал свойство Parent = [контрол таба]. Как то так должно работать.
Skype - wmaster_s E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два. |
31.07.2013, 17:58 | #3 |
Пользователь
Регистрация: 20.07.2013
Сообщений: 18
|
К сожалению та же ошибка."Элемент верхнего уровня нельзя добавлять к элементу управления"
Пробовал и через конструктор передавать и через метод. public FormRn(TabPage page) { InitializeComponent(); this.Parent = page; } |
01.08.2013, 11:28 | #4 |
Старожил
Регистрация: 25.08.2011
Сообщений: 2,841
|
Вы не то сделали. Саму форму нигде разместить нельзя. Чтобы вывести нужные контролы, их нужно создать и задать им парента.
Может вам посмотреть в сторону MDI? Там тоже все просто. У главной формы ставите свойство isMDI = true; (могу ошибатся с названием свойства) у дочерних ставите MDIParent = [главная форма] Очень удобно получистя. Если все таки хотите только контролы выводить то сделайте заранее панели с контролами. Затем свойство визибл = false для всех. И показывайте нужную панель со всем элементами согласно логике вашего приложения.
Skype - wmaster_s E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два. |
01.08.2013, 16:13 | #5 |
Пользователь
Регистрация: 20.07.2013
Сообщений: 18
|
Не зря существует поговорка "все гениальное - просто".
У формы свойство "TopLevel" нужно переключить на false. И все, дальше творить можно что угодно. |
01.08.2013, 18:15 | #6 |
Старожил
Регистрация: 25.08.2011
Сообщений: 2,841
|
По моему это какое то извращение получается.
Skype - wmaster_s E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Добавить рисунок в закладку Word | a_n_n_a | Общие вопросы Delphi | 1 | 08.07.2011 14:27 |
Отследить состояние tabPage | maryan.vetrov | C# (си шарп) | 1 | 06.05.2011 17:50 |
быстрый переход в закладку | Окоча Юра | Microsoft Office Word | 15 | 11.04.2011 16:53 |
Массив Point в WindowsForm visual2008 c++ | scripto | Visual C++ | 0 | 02.04.2011 12:21 |
Как добавить закладку Fastnet? | muravey | Компоненты Delphi | 13 | 25.10.2007 13:27 |