2015-01-24 1 views
0

У меня есть форма Windows с 7 ящиками изображений на ней, которые называются PropButton1 до PropButton7. Я знаю, что они не кнопки, но я использую их как кнопки в любом случае (обычные кнопки не подходят для этой цели).Как установить класс элемента управления vb.NET после того, как он уже был создан

Я хочу добавить пользовательское свойство «Путь к файлу» в поле «Изображения». Для этого я создал отдельный класс, который наследует класс PictureBox:

Public Class PropButton 
    Inherits PictureBox 
    Private SoundFilePath As String 

    Public Property SoundFile() As String 
     Get 
      Return SoundFilePath 
     End Get 
     Set(value As String) 
      SoundFilePath = value 
     End Set 
    End Property 

End Class 

Я хочу, чтобы преобразовать оригинальные коробки Picture из PictureBox в PropButton, так что я могу читать и писать такие вещи, как PropButton1.SoundFilePath и I предпочтительно хотите сделать это, не удаляя все мои ящики изображений и не начинайте заново. Есть ли способ сделать это?

+0

Если это все, что добавлено в std Picbox, вы можете просто использовать словарь (Picbox, string), чтобы связать файл с каждым picbox. В противном случае вы можете * редактировать файл конструктора, там будет 3-4 места для внесения изменений для каждого PicBox. Просто заменить их было бы проще и меньше подверженности ошибкам - если вы исправляете изменения дизайнера, форма вообще не будет загружаться в дизайнере. – Plutonix

+1

Вы можете оставить исходные изображения с помощью свойства tag для SoundFilePath. – Tuco

ответ

2

В Visual Studio смотри направо в Обозревателе решений. Он имеет кнопку панели инструментов для отображения всех файлов. Щелкните по нему, и вы увидите, что вы можете развернуть узлы дерева для форм и содержать три файла. Один из них содержит исходный код, а другой - конструктор. Файл Designer автоматически создается Visual Studio, и в большинстве случаев его не следует трогать.

Когда вы открываете файл конструктора, вы видите все инициализации элементов управления в своей форме и их объявления. Здесь вы можете легко изменить объявления ваших изображений, чтобы они были созданы как PropButtons.

Просто будьте осторожны, что вы здесь меняете, потому что это может испортить дизайнер Visual Studio. Но хорошо знать, что происходит за кулисами.

Посмотрите здесь первый:
enter image description here

Изменить это ...
enter image description here

... к этому.
enter image description here

1

Да, это возможно с помощью текстового редактора. Visual Basic IDE скрывает слишком много информации, первое, что вы хотите сделать, - щелкнуть значок «Показать все файлы» в окне обозревателя решений. Это добавляет узел рядом с вашей формой в том же окне, откройте его и дважды щелкните файл Designer.vb. Обратите внимание на метод InitializeComponent() и декларации в нижней части файла, вы видите, что PictureBoxes объявлены и инициализированы.

Теперь вы можете просто редактировать + заменить «System.Windows.Forms.PictureBox» на «PropButton».

Убедитесь, что у вас есть хорошая резервная копия, прежде чем делать это.