Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.07.2013, 09:06   #1
st_yak
Пользователь
 
Регистрация: 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 на закладку не вариант, на форме два будут процедуры.

Заранее благодарю.
st_yak вне форума Ответить с цитированием
Старый 31.07.2013, 09:29   #2
WorldMaster
Старожил
 
Аватар для WorldMaster
 
Регистрация: 25.08.2011
Сообщений: 2,841
По умолчанию

Сделайте в классе второй формы открытый метод который получает или задает определенную вкладку.
Я делал так:
Создавал контрол, нужный. Делал нужные настройки и задавал свойство Parent = [контрол таба].
Как то так должно работать.
Skype - wmaster_s E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два.
WorldMaster вне форума Ответить с цитированием
Старый 31.07.2013, 17:58   #3
st_yak
Пользователь
 
Регистрация: 20.07.2013
Сообщений: 18
По умолчанию

К сожалению та же ошибка."Элемент верхнего уровня нельзя добавлять к элементу управления"

Пробовал и через конструктор передавать и через метод.

public FormRn(TabPage page)
{
InitializeComponent();
this.Parent = page;
}
st_yak вне форума Ответить с цитированием
Старый 01.08.2013, 11:28   #4
WorldMaster
Старожил
 
Аватар для WorldMaster
 
Регистрация: 25.08.2011
Сообщений: 2,841
По умолчанию

Вы не то сделали. Саму форму нигде разместить нельзя. Чтобы вывести нужные контролы, их нужно создать и задать им парента.
Может вам посмотреть в сторону MDI?
Там тоже все просто. У главной формы ставите свойство isMDI = true; (могу ошибатся с названием свойства) у дочерних ставите MDIParent = [главная форма]
Очень удобно получистя.

Если все таки хотите только контролы выводить то сделайте заранее панели с контролами. Затем свойство визибл = false для всех. И показывайте нужную панель со всем элементами согласно логике вашего приложения.
Skype - wmaster_s E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два.
WorldMaster вне форума Ответить с цитированием
Старый 01.08.2013, 16:13   #5
st_yak
Пользователь
 
Регистрация: 20.07.2013
Сообщений: 18
По умолчанию

Не зря существует поговорка "все гениальное - просто".
У формы свойство "TopLevel" нужно переключить на false. И все, дальше творить можно что угодно.
st_yak вне форума Ответить с цитированием
Старый 01.08.2013, 18:15   #6
WorldMaster
Старожил
 
Аватар для WorldMaster
 
Регистрация: 25.08.2011
Сообщений: 2,841
По умолчанию

Цитата:
Сообщение от st_yak Посмотреть сообщение
Не зря существует поговорка "все гениальное - просто".
У формы свойство "TopLevel" нужно переключить на false. И все, дальше творить можно что угодно.
По моему это какое то извращение получается.
Skype - wmaster_s E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два.
WorldMaster вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Добавить рисунок в закладку 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