Создание компонента

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

sergey-911
Постоялец
Постоялец
 
Сообщения: 545
Зарегистрирован: 17.01.2005 (Пн) 19:10

Создание компонента

Сообщение sergey-911 » 25.08.2008 (Пн) 18:55

Здравствуйте уважаемые.
Программирую в VB 2008.
Начал создавать компонент. Наткнулся на следующие грабли:
1) Как сделать, чтобы компонент на форме не отображался (как диалог выбора файла - размещен в нерабочей области) во время выполнения?
2) Как в этом компоненте узнать, на какой форме он расположен (ParentForm - не достигает результата)?
3) Как в компоненте отследить определенные события формы (Load, UnLoad и т.п.)?
4) Как сменить картинку компонента по умолчанию?
---
Прошу прощения за вопросы, в книгах практически ничего нет о компонентах...
С уважением, Сергей.

Sebas
Неуловимый Джо
Неуловимый Джо
Аватара пользователя
 
Сообщения: 3626
Зарегистрирован: 12.02.2002 (Вт) 17:25
Откуда: столько наглости такие вопросы задавать

Re: Создание компонента

Сообщение Sebas » 25.08.2008 (Пн) 21:22

1. Унаследоваться от Component, а не от Control.
2. А никак! только свойство и присваивай рукам. Потому, как " не на форме" А если "на форме", то бишь COntrol, то
Код: Выделить всё
Public Function FindForm() As System.Windows.Forms.Form
    Member of System.Windows.Forms.Control

Summary:
Retrieves the form that the control is on.


3. при получении формы делаешь AddHandler
4. Аттрибут для класса есть. Имя не помню...
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru

Williams
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1280
Зарегистрирован: 06.05.2008 (Вт) 18:35
Откуда: System.Reflection.Williams (увидел себя в зеркале :))

Re: Создание компонента

Сообщение Williams » 25.08.2008 (Пн) 23:42

Sebas писал(а):4. Аттрибут для класса есть. Имя не помню...


Мне кажется это атрибут ToolboxBitmap. К слову, attribute = атрибут :)
И вы думаете, что вас оставят в живых после прочтения этого поста?

Sebas
Неуловимый Джо
Неуловимый Джо
Аватара пользователя
 
Сообщения: 3626
Зарегистрирован: 12.02.2002 (Вт) 17:25
Откуда: столько наглости такие вопросы задавать

Re: Создание компонента

Сообщение Sebas » 26.08.2008 (Вт) 8:19

Williams писал(а):
Sebas писал(а):К слову, attribute = атрибут :)


Не знаю, как остальные, а писать прописью я уже давно разучился)
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru

sergey-911
Постоялец
Постоялец
 
Сообщения: 545
Зарегистрирован: 17.01.2005 (Пн) 19:10

Re: Создание компонента

Сообщение sergey-911 » 26.08.2008 (Вт) 15:33

Williams писал(а):Мне кажется это атрибут ToolboxBitmap.

Не, не ToolboxBitmap. Есть еще версии?
С уважением, Сергей.

Williams
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1280
Зарегистрирован: 06.05.2008 (Вт) 18:35
Откуда: System.Reflection.Williams (увидел себя в зеркале :))

Re: Создание компонента

Сообщение Williams » 26.08.2008 (Вт) 16:10

sergey-911 писал(а):
Williams писал(а):Мне кажется это атрибут ToolboxBitmap.

Не, не ToolboxBitmap. Есть еще версии?



ToolboxBitmapAttribute Class

Allows you to specify an icon to represent a control in a container, such as the Microsoft Visual Studio Form Designer.

http://msdn.microsoft.com/en-us/library ... ibute.aspx

Откуда такая уверенность?
И вы думаете, что вас оставят в живых после прочтения этого поста?

sergey-911
Постоялец
Постоялец
 
Сообщения: 545
Зарегистрирован: 17.01.2005 (Пн) 19:10

Re: Создание компонента

Сообщение sergey-911 » 26.08.2008 (Вт) 20:16

Williams писал(а):ToolboxBitmapAttribute Class

Allows you to specify an icon to represent a control in a container, such as the Microsoft Visual Studio Form Designer.

http://msdn.microsoft.com/en-us/library ... ibute.aspx

Откуда такая уверенность?


Не обижайся Williams. Посмотрел в свойствах компонента, ToolboxBitmap не нашел...
С уважением, Сергей.

Ramzes
Скромный человек
Скромный человек
Аватара пользователя
 
Сообщения: 5004
Зарегистрирован: 12.04.2003 (Сб) 11:59
Откуда: Из гробницы :)

Re: Создание компонента

Сообщение Ramzes » 26.08.2008 (Вт) 21:03

sergey-911, и ты не обижайся, но тебе сказали не свойство а атрибут!

sergey-911
Постоялец
Постоялец
 
Сообщения: 545
Зарегистрирован: 17.01.2005 (Пн) 19:10

Re: Создание компонента

Сообщение sergey-911 » 27.08.2008 (Ср) 6:17

ОК. А где этот атрибут поменять? Прошу прощение за назойливость. :oops:
С уважением, Сергей.

1Steps
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 505
Зарегистрирован: 20.12.2006 (Ср) 0:50
Откуда: New York

Re: Создание компонента

Сообщение 1Steps » 27.08.2008 (Ср) 7:37

Существующую в студии стандартную картинку прогрессбара

Код: Выделить всё
Imports System.ComponentModel
Imports System.Drawing.Drawing2D

<ToolboxBitmap(GetType(ProgressBar))> _
Public Class FGProgressBar
...
...
End Class


или свою картинку


Код: Выделить всё
Imports System.ComponentModel
Imports System.Drawing.Drawing2D

<ToolboxBitmap(GetType("c:\картинка_твоего_прогрессбара.bmp"))> _
Public Class FGProgressBar
...
...
End Class
Удалена за ненадобностью.

sergey-911
Постоялец
Постоялец
 
Сообщения: 545
Зарегистрирован: 17.01.2005 (Пн) 19:10

Re: Создание компонента

Сообщение sergey-911 » 27.08.2008 (Ср) 8:50

1Steps писал(а):Существующую в студии стандартную картинку прогрессбара

Код: Выделить всё
Imports System.ComponentModel
Imports System.Drawing.Drawing2D

<ToolboxBitmap(GetType(ProgressBar))> _
Public Class FGProgressBar
...
...
End Class


или свою картинку


Код: Выделить всё
Imports System.ComponentModel
Imports System.Drawing.Drawing2D

<ToolboxBitmap(GetType("c:\картинка_твоего_прогрессбара.bmp"))> _
Public Class FGProgressBar
...
...
End Class



Не, не получается...
Первый вариант ни к чему не приводит, второй - выдает ошибки.
Прикрепляю проект, подправте плиз. :oops:
Вложения
PanelComponent.rar
проект с контролом, иконку которого нужно поменять
(62.68 Кб) Скачиваний: 54
С уважением, Сергей.

Atoman
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 109
Зарегистрирован: 01.02.2008 (Пт) 6:36

Re: Создание компонента

Сообщение Atoman » 27.08.2008 (Ср) 12:38

Вынеси свой контрол в отдельную библиотеку.
Вложения
PanelComponent.rar
(182.64 Кб) Скачиваний: 66

sergey-911
Постоялец
Постоялец
 
Сообщения: 545
Зарегистрирован: 17.01.2005 (Пн) 19:10

Re: Создание компонента

Сообщение sergey-911 » 27.08.2008 (Ср) 13:39

Спасибо Atoman.
С уважением, Сергей.


Вернуться в Visual Basic .NET

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 87

    TopList