Ресурсы формы 1 против ресурсов проекта - PullRequest
3 голосов
/ 16 февраля 2011

Я пытаюсь узнать о ресурсах.В VS при создании проекта:
- есть Form1 с Form1.resx - есть Resources.resx в Свойства

Я не знаю, какой из них использовать.Очевидно, я не могу использовать Form1.resx.Когда я пытаюсь что-то добавить, я получаю предупреждение, что это может испортить проект.Кроме того, я не могу получить к нему доступ.Если я использую Resources.resx в разделе «Свойства», я могу легко получить доступ к файлам там, просто используя Properties.Resources. (Имя файла).В чем же разница между этими двумя?Для чего нужен Form1.resx?Спасибо

Ответы [ 3 ]

0 голосов
/ 16 февраля 2011

Form1.resx хорош для встраивания графических объектов непосредственно в ваши файлы кода Form1. Таким образом, легко вырезать и вставить эту форму в другие проекты. Кроме того, если вы создадите еще одну копию Form1 с именем Form2, вы можете внести изменения в любую из них, не беспокоясь о тех изменениях, которые влияют на другую форму. Resources.resx работает как раз наоборот. Если вы внесете изменения в ресурс в Resources.resx, все классы, которые используют этот ресурс, будут обновлены. Например, если у вас есть ресурс filepath и вы изменили путь, все классы, которые ссылаются на этот ресурс, получат обновленный путь.

0 голосов
/ 17 февраля 2011

Будьте предельно осторожны, когда вы играете с файлами resx в Visual Studio !!!!

Скорее всего, вы скоро потерпите крах вашего проекта, когда попытаетесь изменить / добавить / отредактировать / удалитьРесурсы уровня формы.

Вам лучше использовать файл ресурсов уровня проекта.

Существует несколько типов ресурсов, таких как строки, изображения, аудио, значки, файлы и т. д.

Ресурсы уровня проекта полезны для совместного использования ресурсов - в основном, графики - между всеми вашими формами:

Вы импортируете графику один раз из Меню проекта / Свойства / Ресурсы myProject / Добавить существующий элемент меню файла.

Будьте осторожны, если добавив ресурс и ИСПОЛЬЗУЯ этот ресурс в своем проекте, вы НЕ ДОЛЖНЫ удалять его из файла ресурсов, БЕЗ ВНИМАНИЯ, вы его не используетеболее того, в противном случае ресурс будет удален, но НЕ будет ссылаться на него, и вы получите ошибку времени компиляции или, что еще хуже, ошибки времени выполнения.

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

Кроме того, imagelistочень сложно поддерживать - развиваться.

Для копирования существующей формы в новую в том же проекте или в другом, НЕ копируйте / вставляйте файл formxxx.vb.В идеале, не копируйте / вставляйте файл resx из одного проекта в другой.

Вот довольно громоздкий процесс, который вы должны использовать:

1 - чтобы скопировать форму в тот же файлproject:

При условии, что НЕТ ресурсов уровня пользовательской формы (добавленных вами): Создайте новую пустую форму и задайте для нее такой же размер - и другие необходимые свойства - как в исходной форме.Да, вручную.

В исходном дизайне формы введите Ctrl + A, чтобы выбрать все элементы управления и скопировать их в новую форму.

Они сохранят свои имя и свойства.

Сделайте то же самое для кода: копировать / вставить.Обратите внимание на удаление 1-й строки после импорта: открытый класс myOriginalForm

2 - чтобы скопировать формы в другой проект , сначала необходимо убедиться, что все ресурсы уровня проекта идентичны.И НЕ копируя отдельные ресурсы из папки ресурсов!

Вместо этого аккуратно импортируйте ресурсы в новый проект, используя пункт меню «Добавить существующий ресурс».Вы можете импортировать несколько элементов одновременно.

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

0 голосов
/ 16 февраля 2011

Form1.resx предназначен для формы и определяет, что он имеет в качестве элементов управления. Вам также не следует пытаться редактировать это вручную, так как оно восстанавливается при внесении изменений в пользовательский интерфейс с помощью дизайнера VS

Resources.resx предназначен для глобальных (общих) ресурсов для всего проекта. Обычно предназначен для обмена материалами!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...