2010-02-03 3 views
2

У меня есть решение в VB.NET (VS 2005)вручную добавить файл ресурсов (Visual Studio)

В этом решении у меня есть пользовательский элемент управления, который наследуется от абстрактного класса.

Теперь, поскольку VS является VS, он не хочет отображать элемент управления в дизайнере, поскольку его родительский элемент является абстрактным.

Теперь я хочу добавить к этому элементу изображение с изображением (bmp или ico). Обычно я сделал это открытие дизайнера и перетащил картинку, выбрав также изображение в фоновом режиме.

Но как дизайнер недоступен, как я могу добавить добавление изображения к моему контролю?

ответ

2

У вас есть два варианта:

1. Добавить изображение в качестве ресурса проекта, а затем и создать и добавить элемент управления PictureBox во время выполнения.

Это немного грязно, но решает проблему. Добавьте изображение в ресурсы проекта. И во время выполнения сделать что-то вроде этого:

PictureBox pb = new PictureBox(); 
pb.Image = (Bitmap)global::MyProject.MyImage; 

myCustomControl.Controls.Add(pb); 
pb.Location = new Point(x,y); 
// and any other properties that need setting 

2. Закрепить свойство времени дизайна вашего контроля

Это лучше долгосрочное решение. MSDN имеет много информации об атрибутах «Дизайнер», которая похожа на код, который работает в режиме разработки, так что вы можете взаимодействовать с элементом управления в Visual Studio. Иногда VS довольно хорошо разбирается в некоторых деталях для дизайнера для вас, иногда вам приходится помогать ему. Просто потому, что элемент управления основан на абстрактном классе, не означает, что вы не можете создать для него конструктор.

+0

так, вторая часть интересна. Итак, какой атрибут может «рассказать» VS «игнорировать» абстрактного родителя? – serhio

+0

Вы не «игнорируете» родителя так сильно, как если бы вы добавляли «конструктор» к унаследованному элементу управления. –

Смежные вопросы