Member 11745656 Ответов: 1

Как добавить элемент управления UserControl на форму mainform из другой формы


Привет, ребята !

У меня есть 2 формы и 3 UserControl(Campain_Overview , Campain_Post, Campain_Interact).

1 - форму mainform содержать панель2 провести UserControl имя Campain_Overview, в этот элемент управления UserControl содержит кнопку вызова "добавить кампанию".

2 - Когда я нажимаю на кнопку "Добавить кампанию", это показать другую форму diaglog называть "добавить кампанию".Эта форма содержит 2 кнопки : "разместить кампанию" и "кампания взаимодействовать".

3 - Так я хочу, если я нажимаю на кнопку "кампания пост", это близко "добавить кампанию" форма, то элемент управления UserControl нагрузки Campain_Post в панель2 в mainform.

4 - похож на кнопку "кампания взаимодействовать", недалеко "добавить кампанию" форма", потом " загрузить элемент управления UserControl Campain_Interact в панель2 в mainform.

Это пик моей работы :
http://prntscr.com/mfpt8p[^]


Ребята, вы можете мне помочь ? И покажите мне подробно с кодом, потому что я младенец в программировании, и английский язык не является моим основным языком !

Спасибо вам

Что я уже пробовал:

Это происходит в форме AddCampain.cs. Даже нажмите кнопку Создать дизайнером. Но когда я запускаю это, в этой строке говорится: "ссылка на объект не установлена на экземпляр объекта". :
pnl.panel2.Controls.Add(camPost);

pnl.panel2.Controls.Add(camInteract);

private void CampainPost_Click(object sender, EventArgs e) {


           MainForm pnl = (MainForm)ParentForm;

           Campain_Post camPost = new Campain_Post();
           pnl.panel2.Controls.Add(camPost);
           camPost.Dock = DockStyle.Fill;
           camPost.BringToFront();
           Close();

       }


<pre> private void CampainInteraction_Click(object sender, EventArgs e) {


            MainForm pnl = (MainForm)ParentForm;
            Campain_Interaction camInteract = new Campain_Interaction ();
            pnl.panel2.Controls.Add(camInteract);
            camInteract .Dock = DockStyle.Fill;
            camInteract .BringToFront();
            Close();

        }

1 Ответов

Рейтинг:
0

Ravi Bhavnani

"Как добавить элемент управления UserControl на форму mainform из другой формы"
Не делай этого!

Вместо этого ваш диалог "добавить Campain" должен просто возвращать тип кампании, которую пользователь хочет добавить. Это должно быть обязанностью MainFrm реагировать на это и добавлять к себе необходимый пользовательский контроль. Это не очень хорошая идея, чтобы выставить внутренние части объектов (особенно объектов пользовательского интерфейса). Разделите проблемы 2-х UIs: цель диалога-просто определить тип кампании. Это зависит от MainFrm, чтобы справиться с этим любым способом, который он выберет.

Я также рекомендую не использовать диалог для определения типа кампании. Вместо этого замените кнопку "Добавить Campain" кнопкой Меню, которая имеет 2 варианта: Campain Post и Campain Interaction.

Наконец, это "кампания", а не "кампейн". :)

/Рави


Member 11745656

не могли бы вы дать мне какой - нибудь код для справки ?
Хорошо, я понимаю, что диалог для отдельного Тая кампании, и кнопка меню может удерживать его ! Но я хочу сделать это с помощью всплывающего окна и выбрать тип кампании. Потому что речь идет не только о кампании, а также о других функциях, инструментах и т. д. Если все это находится в кнопке меню, то это действительно трудно увидеть; диалог легко получить чистый вид !

Ravi Bhavnani

Хорошо, тогда продолжайте и используйте диалог.

Я хочу сказать, что цель диалогового окна-указать выбор пользователя в вызывающей форме. Вызывающая форма должна использовать эту информацию, чтобы делать все, что ей нужно, со своим собственным пользовательским интерфейсом. Диалоговое окно не должно изменять содержимое вызывающей формы.

/Рави