2013-09-16 2 views
0

Я добавил картинку с помощью моей формы и импортировал 2 изображения, из свойств под image Свойство я выбираю первый снимок при запуске приложения и внутри своего start button event Я хочу изменить свое изображение на другое изображение. это то, что я есть попробовать: происходитСменить фото-рамку

pbIndicator.Image = Image.FromFile(@"..\Resources\indicator_green.png"); 

но файл не найден ошибка исключения.

+2

«файл не найден» <- –

+0

Местоположение от моего Recources.resx –

+0

Если это ресурс (просто обновите пространство имен), сделайте следующее: ** pbIndicator.Image = Properties.Resources.indicator_green; ** Ресурсы _won ' t будет скопирован в вывод directory_ (и вам даже не нужно это делать, потому что они будут внедрены в ваш исполняемый файл, потому что ссылаются на resources.resx). –

ответ

2

Вы должны быть в состоянии сделать что-то вроде этого:

pbIndicator.Image = Resources.indicator_green; 
1

Убедитесь, что в окне свойств, если Build Action находится на Content, и Copy to Output Directory находится на Copy if newer.

Если вы хотите, чтобы это было довольным. Else использовать ответ Shadow Wizard дал.

0

Как я уже писал в комментариях, если indicator_green.jpg изображение включено в качестве ресурса через файл ресурсов (Resources.resx), то он не будет скопирован на выходе (это означает, что он находится в папке проекта, потому что он используется для создания исполняемого файла, но он будет встроен в вашу сборку, а не развернут отдельно).

Файлы ресурсов будут (по умолчанию) размещать ресурсы, которые вы добавляете внутри папки Resources (и затем связаны). Вы всегда можете получить к ним доступ с помощью созданного файла кода для ресурсов:

pbIndicator.Image = Properties.Resources.indicator_green; 

Вы можете изменить пространство имен Properties и имя свойства в зависимости от того, что у вас есть в вашем проекте (по имени свойства по умолчанию имеет такое же имя ресурса и затем же имя как исходный файл).

Конечно, вы не должны вставлять свои ресурсы в свою сборку. Если вы хотите развернуть их как автономные файлы, просто щелкните правой кнопкой мыши папку «Ресурсы» и добавьте существующий файл. В окне свойств для этого файла выберите Копировать всегда для копирования в выходной каталог и вуаля, вы будете иметь возможность читать его:

pbIndicator.Image = Image.FromFile(@"Resources\indicator_green.png"); 

Пожалуйста, обратите внимание, что Resources папки не будет поддиректорией ваш выходной каталог (не забудьте, что исходные файлы не являются частью установки).

Во всяком случае я предлагаю вам не построить путь, что немного лучше было бы не полагаться на текущую папку:

pbIndicator.Image = Image.FromFile(
    Path.Combine(Application.StartupFolder, @"Resources\indicator_green.png"); 

Вы не ограничены в Resources папку, вы можете сделать это с любым (и с любым именем).

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