我正在使用C#/ Winforms构建用户控件,并且在本地化方面遇到了一些问题。
我在资源文件中添加了许多字符串" inside"用户控件,使用Visual Studio自动创建的updateFromFile()
文件。就目前而言,这些字符串为用户控件中的各种按钮提供Text值。我已经使用特定于位置的后缀(即UserControl.resx
)对此进行了测试,并且所有内容看起来都很完美。
但我发现,我正在使用的UserControl.zh-HK.resx
文件被不定期地删除或清除(我没有确切地确定它是什么时候并且没有被清除)。
一个很大的线索是,当我尝试编辑此文件时,IDE会抛出一个消息框。它实质上说,我的改变可能会丢失。经验告诉我,情况确实如此。
由于各种原因,将资源文件与用户控件紧密耦合的想法似乎很有吸引力。我们有几个人都在开发用户控件,这些控件都是针对同一个产品的。
有没有办法阻止VS粉碎我的字符串资源?有没有更好的方法,允许我们为每个用户控件需要一组单独的资源文件?
感谢。
答案 0 :(得分:0)
长话短说,我所做的一切都是错的。
最后,我所做的是在我的项目中创建一个Resources文件夹,为每个离散组件(表单,用户控件等)提供一组单独的资源文件。然后在每个组件中,我检索字符串,如buttonFoo.Text = Resources.UserControl.buttonFoo_Text
。
这种方法现在似乎运行良好,并提供了我想要的资源文件的分离,同时使来自多个源的代码的集成变得半无痛。