Я хочу вызывать ресурс строкового типа внутри .resx по его имени, которое хранится в переменной.
Допустим, у меня есть DataGridView1
с этими столбцами:
| Kiwi | Apple | Grape | 'these are the columns name
У меня есть Core.resx
для хранения моих ресурсов:
| Name | Value | Comment | 'note how the name of the resource
| DGV_Kiwi | Hairy Kiwi | | 'is "DGV_" & column.Name
| DGV_Apple | Red Apple | |
| DGV_Grape | White Grape | |
При загрузке DataGridView1
Я хочу изменить заголовок на значение файла ресурса. Конечно, я могу сделать это с помощью чего-то вроде:
DataGridView1.Columns(0).HeaderText = My.Resources.Core.DGV_Kiwi
DataGridView1.Columns(1).HeaderText = My.Resources.Core.DGV_Apple
DataGridView1.Columns(2).HeaderText = My.Resources.Core.DGV_Grape
Но я ленивый и у меня намного больше столбцов в моем реальном проекте. Поэтому я хочу сделать это с al oop.
Это первое, что я попробовал:
For Each Col As DataGridViewColumn In Me.DataGridView1.Columns
Col.HeaderText = My.Resources.Core.Col.Name
Next
Конечно, это не работает:
Col не является членом Core
Я также пробовал это:
For Each Col As DataGridViewColumn In Me.DGVComps.Columns
Col.HeaderText = My.Resources.ResourceManager.GetObject("Core.DGV_" & Col.Name)
Next
Но My.Resources.ResourceManager.GetObject("Core.DGV_" & Col.Name)
возвращает Nothing
.
Так возможно ли это? Или я должен назвать свои ресурсы по имени?
PS: я привел этот пример в VB. NET, но я могу сделать это и в C#.