Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Использование файла ресурсов / 11 сообщений из 11, страница 1 из 1
02.03.2005, 13:48
    #32941093
.DLL
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование файла ресурсов
Всем привет!
Скажите плиз, если в проект включен файл ресурс (resx) с иконками, как получить оттуда иконку, чтобы поставить ее например на кнопку? Что-то вроде ImageList, только для всего проекта.
...
Рейтинг: 0 / 0
02.03.2005, 17:48
    #32942073
GreatValen
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование файла ресурсов
.DLLВсем привет!
Скажите плиз, если в проект включен файл ресурс (resx) с иконками, как получить оттуда иконку, чтобы поставить ее например на кнопку? Что-то вроде ImageList, только для всего проекта.

Если в FW 2.0, например так: PictureBox1.Image=My.Resources.[Имя ресурса]
...
Рейтинг: 0 / 0
03.03.2005, 09:57
    #32942858
.DLL
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование файла ресурсов
GreatValen Если в FW 2.0, например так: PictureBox1.Image=My.Resources.[Имя ресурса]
У меня FW 1.1 :( Не прокатывает.
...
Рейтинг: 0 / 0
03.03.2005, 11:59
    #32943265
.DLL
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование файла ресурсов
Ау, люди!
Неужели никто не работал с ресурсами?
...
Рейтинг: 0 / 0
03.03.2005, 13:03
    #32943471
vladgrig
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование файла ресурсов
...
Рейтинг: 0 / 0
03.03.2005, 13:41
    #32943606
.DLL
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование файла ресурсов
vladgrig почитай - может быть поможет
Чей то не выходит
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Dim rsxr As ResXResourceReader
        rsxr = New ResXResourceReader("Resource1.resx")

     
        ' Iterate through the resources and display the contents to the console.
        Dim d As DictionaryEntry
        For Each d In rsxr
            MessageBox.Show(d.Value.GetType.ToString)
        Next d

        'Close the reader.
        rsxr.Close()
Здесь
Код: plaintext
For Each d In rsxr
выдает ошибку:
Код: plaintext
An unhandled exception of type 'System.IO.FileNotFoundException' occurred in mscorlib.dll
...
Рейтинг: 0 / 0
03.03.2005, 16:08
    #32944182
vladgrig
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование файла ресурсов
Значит надо писать претензию мелкомягким (пример то с их сайта). А, можно попробовать положить файл ресурсов в bin директорию. Вдруг пойдет???
...
Рейтинг: 0 / 0
04.03.2005, 00:33
    #32945061
Sa
Sa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование файла ресурсов
выдает ошибку:
An unhandled exception of type 'System.IO.FileNotFoundException' occurred in mscorlib.dll

и немудренно :-) ваш resx файл (XML формат) компилируется в бинарный resources.

Здесь есть варианты,
1) можно пойти по пути нашего FAQ т.е. добавлять иконку отдельно как embedded resource и не мучаться.... :-)

2) можно также частично пойти по пути FAQ (ваш случай), и использовать ResourceReader .

Например, пусть в проекте у нас есть Resource1.resx содержащий иконку: name = "myicon1" и для полноты примера текст: name = "mytext1"; value = "my text"

Задача: Присвоить иконку и текст соответствующим свойствам формы
Код выполняется в форме, т.е. Me - это экземпляр класса Form
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
Dim stream As Stream
Dim defaultNamespace As String = "MyAssemblyName" ' стандартное пространство имен
Dim fileName As String = "Resource1.resources" ' наш скомпилированный Resource1.resx
Try
   stream = Me.GetType().Assembly.GetManifestResourceStream(String.Format("{0}.{1}", defaultNamespace, fileName))
   Dim reader As ResourceReader
   Try
       reader = New ResourceReader(stream)
       Dim entry As DictionaryEntry
       For Each entry In reader
           If (entry.Key.ToString() = "myicon1") Then
               Me.Icon = entry.Value
           End If
           If (entry.Key.ToString() = "mytext1") Then
               Me.Text = entry.Value
           End If
       Next
   Finally
       Dim disp As IDisposable
       If TypeOf reader Is IDisposable Then
           disp = reader
           disp.Dispose()
       End If
   End Try
Finally
   Dim disp As IDisposable
   If TypeOf stream Is IDisposable Then
       disp = stream
       disp.Dispose()
   End If
End Try
'где defaultNamespace - стандартное пространство имен
'В VS.NET: Solution Explorer -> контекстное меню проекта -> Properties -> Common Properties -> General ->AssemblyName.

P.S. Не забываем
Код: plaintext
1.
2.
Imports System.IO
Imports System.Resources

P.S.S. Все стринги чувствительны к регистру, а то поймаете System.ArgumentNullException :-)

P.S.S.S. Возможно стоит добавить FAQ и этот случай...

Код: plaintext
 uid  =  S a
...
Рейтинг: 0 / 0
04.03.2005, 10:31
    #32945515
.DLL
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование файла ресурсов
Уря!!!
Спасибо большое!
...
Рейтинг: 0 / 0
04.03.2005, 11:30
    #32945717
.DLL
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование файла ресурсов
А можно вопрос в догонку?
Почему когда я свойству Me.btExit.Image у кнопки присваиваю объект с типом Icon, получаю исключение:
Код: plaintext
Заданное приведение является недопустимым.
Ведь свойству Image можно ставит иконку?
...
Рейтинг: 0 / 0
21.03.2005, 22:39
    #32972427
RUSYA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование файла ресурсов
А вы попробовали использовать не .resx, а .dll в нем проще.
New Project -> Class Library ->
c меню Project -> Add New Item... -> Icon File
редактируем или добавляем готовый с Solution Explorer
с Solution Explorer'а удаляем Сlass1.vb
Затем Build -> Build Class1

В итоге Class1.dll готов

В вашем проекте Project -> Add Referense... -> Browse... выбераем class1.dll
Dim smth as new class.icon1
Button1.Image=smth
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Использование файла ресурсов / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]