Ik zit in het OpenSource project MapWindow (www.mapwindow.org).
Mapwindow is een GIS-applicatie.
Ik ben daarin bezig met het geschikt maken van de applicatie voor meerdere talen (Engels, Nederland, Duits, etc).
Hiervoor gebruiken we de standaard manier van .NET door resourcefiles te gebruiken. Dit gaat prima voor de forms.
Nu gebruiken we ook de standaard .NET property control om de gegevens van een kaart weer te geven en te laten wijzigen (zoals projectie, displaynaam, kleuren, icon, labels, etc.)
Een deel van die code ziet er als volgt uit:
Ik heb een resourcefile (PrjSetGrid.resx) toegevoegt en ik heb de code als volgt aangepast:
In de declarations:
en in
De regel
gaat prima.
Maar op de eerste regel
krijg ik de volgende foutmelding op resMan:
Reference to a non-shared member requires an object reference.
Als ik vervolgens de declaratie can resMan verander van Private naar Public Shared, krijg ik de melding dat het een constant string moet zijn.
Ik heb al op Google en MSN gezocht maar ik kan niets vinden hoe ik dit kan oplossen/omzeilen.
Heeft iemand van jullie een idee?
Paul
Mapwindow is een GIS-applicatie.
Ik ben daarin bezig met het geschikt maken van de applicatie voor meerdere talen (Engels, Nederland, Duits, etc).
Hiervoor gebruiken we de standaard manier van .NET door resourcefiles te gebruiken. Dit gaat prima voor de forms.
Nu gebruiken we ook de standaard .NET property control om de gegevens van een kaart weer te geven en te laten wijzigen (zoals projectie, displaynaam, kleuren, icon, labels, etc.)
Een deel van die code ziet er als volgt uit:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| <Category("Project Projection"), _
TypeConverter(GetType(SubCategoryCls)), _
ReadOnlyAttribute(False)> _
Public Property Group() As String
Get
Return m_SubCategory
End Get
Set(ByVal Value As String)
If m_MainCategory = "" Then 'Should select MainCategory first
MessageBox.Show("Please Select Main Category")
Return
End If
m_SubCategory = Value
m_CurrentSub = Value
Name = "" 'refresh Name because subcategory has changed
End Set
End Property |
Ik heb een resourcefile (PrjSetGrid.resx) toegevoegt en ik heb de code als volgt aangepast:
In de declarations:
code:
1
| Private resMan As ResourceManager = New ResourceManager("MapWindow.PrjSetGrid", System.Reflection.Assembly.GetExecutingAssembly()) |
en in
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| <Category(resMan.GetString("ProjectProjection.Text")), _
TypeConverter(GetType(SubCategoryCls)), _
ReadOnlyAttribute(False)> _
Public Property Group() As String
Get
Return m_SubCategory
End Get
Set(ByVal Value As String)
If m_MainCategory = "" Then 'Should select MainCategory first
MessageBox.Show(resMan.GetString("PleaseSelectMainCategory.Text"))
Return
End If
m_SubCategory = Value
m_CurrentSub = Value
Name = "" 'refresh Name because subcategory has changed
End Set
End Property |
De regel
code:
1
| MessageBox.Show(resMan.GetString("PleaseSelectMainCategory.Text")) |
gaat prima.
Maar op de eerste regel
code:
1
| <Category(resMan.GetString("ProjectProjection.Text")), _ |
krijg ik de volgende foutmelding op resMan:
Reference to a non-shared member requires an object reference.
Als ik vervolgens de declaratie can resMan verander van Private naar Public Shared, krijg ik de melding dat het een constant string moet zijn.
Ik heb al op Google en MSN gezocht maar ik kan niets vinden hoe ik dit kan oplossen/omzeilen.
Heeft iemand van jullie een idee?
Paul