Приветствую всех!
Не подскажите, как правильно добавить в проект существующие файлы исходника, реализующие контрол, что бы он отобразидся нормально в toolbox — My user controls. У меня почему то не получается это сделать. Иногда через некоторое время они появляются самостоятельно, иногда вообще их нет и заставить появиться не удается.
25.12.03 11:16: Перенесено модератором из '.NET' — AVK
A> Иногда через некоторое время они появляются самостоятельно, иногда вообще их нет и заставить появиться не удается.
Если среда в состоянии просечь, что класс в файле — наследник UserControl, то он появится. А если в файле несколько классов, или предок класса не известен среде, то извини.
Чтобы добавить на форму любой компонент не из Toolbox я делаю так.
1. Кидаю на форму Process.
2. Захожу в код, переправляю:
/* старое:
System.Diagnostics.Process process1; */
MyComponent process1;
3. Расплюсовываю InitializeComponents, исправляю:
/* старое:
this.process1 = new System.Diagnostics.Process();
this.process1.SynchronizingObject = this; */
this.process1=new MyComponent();
А потом уже в дизайнере переименовываю его как надо, свойства добавляю. Добавлять не-компоненты, то есть классы, не реализующие IComponent нельзя. А компоненты, включая визуальные контролы и невизуальные собственно компоненты — можно добавлять.
... << RSDN@Home 1.1 beta 1 >>
Здравствуйте, mihailik, Вы писали:
A>> Иногда через некоторое время они появляются самостоятельно, иногда вообще их нет и заставить появиться не удается.
M>Если среда в состоянии просечь, что класс в файле — наследник UserControl, то он появится. А если в файле несколько классов, или предок класса не известен среде, то извини.
M>Чтобы добавить на форму любой компонент не из Toolbox я делаю так.
M>1. Кидаю на форму Process.
M>2. Захожу в код, переправляю:
M>M>/* старое:
M>System.Diagnostics.Process process1; */
M>MyComponent process1;
M>
M>3. Расплюсовываю InitializeComponents, исправляю:
M>M>/* старое:
M>this.process1 = new System.Diagnostics.Process();
M>this.process1.SynchronizingObject = this; */
M>this.process1=new MyComponent();
M>
M>А потом уже в дизайнере переименовываю его как надо, свойства добавляю. Добавлять не-компоненты, то есть классы, не реализующие IComponent нельзя. А компоненты, включая визуальные контролы и невизуальные собственно компоненты — можно добавлять.
Вообще у меня все проще. Есть разработанный производный от DataGrid компонент. Хочу впихнуть его в беловой проект и фиг. В toolbox он не появляется. Можно его внедрить принудительно, но как поведет себя дизайнер при работе с основным проектом при изменении компонента с solution?! Я честно говоря уже намучился с финтами дизайнера, который эпизодически чем-то недоволен и выкидывает из форм мои компоненты. А при столь принудительной линковки ждать можно чего угодно. Кстати, а проблем м проподанием своих компонент не бывает?
A>Вообще у меня все проще. Есть разработанный производный от DataGrid компонент. Хочу впихнуть его в беловой проект и фиг. В toolbox он не появляется. Можно его внедрить принудительно, но как поведет себя дизайнер при работе с основным проектом при изменении компонента с solution?!
Так же, как и при "непринудительном" внедрении. Результат-то один: в коде появляются те строки, что я показывал.
A>Я честно говоря уже намучился с финтами дизайнера, который эпизодически чем-то недоволен и выкидывает из форм мои компоненты. А при столь принудительной линковки ждать можно чего угодно. Кстати, а проблем м проподанием своих компонент не бывает?
Это бывает. Глюки, глюки... И чем запутанней связи между компонентами/сборками/солючинами, тем сильнее глючит.

... << RSDN@Home 1.1 beta 1 >>