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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.10.2013, 14:17   #1
Avol
 
Регистрация: 04.05.2008
Сообщений: 6
По умолчанию Работа с компонентами в режиме RunTime. (System.ComponentModel.Design)

Делаю что-то вроде редактора компонентов, как в VisualStudio.

пример кода из конструктора класса:
Код:
// DesignSurfaceForPG наследник DesignSurface, IServiceProvider
DesignSurfaceForPG designSurface = new DesignSurfaceForPG();
IServiceContainer serviceContainer = (IServiceContainer)designSurface.GetService(typeof(IServiceC ontainer));
serviceContainer.AddService(typeof(IEventBindingService), new EventBindingService(designSurface));
ISelectionService selectionService = (ISelectionService)designSurface.GetService(typeof(ISelectio nService));

selectionService.SelectionChanged += new EventHandler(OnSelectionChanged);

designSurface.BeginLoad(typeof(Form));

//создается форма, как основа
Control c = designSurface.View as Control;
c.Parent = _pUnderWP;
c.Dock = DockStyle.Fill;

IDesignerHost designerHost = (IDesignerHost)designSurface.GetService(typeof(IDesignerHost ));
((Form)designerHost.RootComponent).Text = "Здесь могла бы быть ваша реклама";

System.Drawing.Design.IToolboxUser itu = (System.Drawing.Design.IToolboxUser)designerHost.GetDesigner (designerHost.RootComponent);
//добавляем на форму комбобокс к примеру
itu.ToolPicked(new System.Drawing.Design.ToolboxItem(typeof(ComboBox)));
Теперь хочу подписать Форму (которая как бы основа считается, на события драг/дроп (для создания на ней объектов перетаскиванием)

Вот подписываю ее на пару событий:
Код:
((Form)designerHost.RootComponent).AllowDrop = true;
((Form)designerHost.RootComponent).DragEnter += new DragEventHandler(c_DragEnter);
((Form)designerHost.RootComponent).DragDrop +=new DragEventHandler(c_DragDrop);
((Form)designerHost.RootComponent).Click += new EventHandler(с_Click);
срабатывает только DragEnter . Можете объяснить почему. Может надо через интерфейс какой или еще ка. Буду рад помощи

Последний раз редактировалось Stilet; 30.10.2013 в 14:21.
Avol вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Добавление строки в Memtable в режиме runtime Dozent Общие вопросы Delphi 1 30.09.2013 03:01
Команда System: запуск программы в свёрнутом режиме, Не работает команда /min Me777 Общие вопросы C/C++ 0 12.07.2011 11:49
управление компонентами в режиме run-time. KrisPipis Помощь студентам 3 08.12.2010 01:11
Как создавать визуальные компоненты в режиме Runtime Sulik Общие вопросы .NET 1 26.03.2008 19:52
Коррекция кода программы в режиме Runtime Simply-Art Общие вопросы Delphi 5 12.03.2007 15:33