请教winform中的全局资源文件窜改问题

myelse 2009-04-13 06:12:50
在同一个解决方案下,如果有两个或者两个以上的项目同时存在的时候。假设两个项目同时存在(A,B)
然后在A项目的全局资源文件下手动建一个全局资源项。GA
在B项目下的全局资源文件下也建一个全局的资源项目。GB(注意,A项目下的资源项名称和B下的名称不一样)

然后在A项目中某个窗口(FA)中引用这个全局资源项(GA)。到此为止还算正常。
但是,在B项目中的某个窗口(FB)中引用B项目的全局资源项(GB)的时候,A项目下的窗口(FA)中的design文件中关于全局资源项(GA)就会发生窜改 ,全部变成(GB)。


如果在这个时候你去把A项目下的FA窗口design文件中的GB全部替换成GA,然后保存,你会发现在B项目中的FB中的GB居然全部窜改成(GA)


请问有人遇到这种情况没有?具体发生这种情况是在做多语言版本的时候。
...全文
263 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
a420318709 2010-12-27
  • 打赏
  • 举报
回复
顺便了解下如何把其他资源添加到全局资源里,谢谢!
gengxin_914 2009-04-17
  • 打赏
  • 举报
回复
没遇到过,绑定
myelse 2009-04-17
  • 打赏
  • 举报
回复
继续等待解答
兔儿爷 2009-04-15
  • 打赏
  • 举报
回复
不了解,帮顶喽。。
jryu2k5 2009-04-15
  • 打赏
  • 举报
回复
LZ可以试一下,在A项目里面实现一个public的类A,该类的使用最主要的是实现对A项目里面的全局资源的读出与修改,同时在B项目里同样建针对资源操作的类,那么无论在a项目里还是在b项目里只要将对应的类实例化后就可以进行对资源的修改了

PS:该方法未经过实践,LZ可以尝试一下
myelse 2009-04-15
  • 打赏
  • 举报
回复
回7楼,是在用资源文件做多语言版本的时候。主要用于存储不同语言版本下的图片,字符串信息等等

回3楼,资源文件是一个预先编译的资源项(比如我先在里面写入一些字符串,然后在英文版下加载英文的字符串,中文下加载中文的字符串),我只需要读取它的值就可以,不需要修改,而且它本身也不允许在代码中更改。

回5楼,你说的方法我没使用过,具体不太清楚,能否详细介绍一下,谢谢


具体的窜改代码我也拷贝上来,另外Designer文件和resx实际上是不允许用户手动去更改它的项目的,它是窗体的UI设计的时候自动去更改的。

this.q_lkedtCarr.Properties.NullText = global::Cargo.UI.Forwarder.AirImport.Properties.Resources.RG_FreightParpeitAI;




这是Designer文件中代码,我说的窜改也是在这里,.net窗体自动去窜改上面这个地方的值,q_lkedtCarr是一个DEV(DevExpress 7.1)的下拉列表控件(DevExpress.XtraEditors.LookUpEdit)
LutzMark 2009-04-15
  • 打赏
  • 举报
回复
分别用记事本打开FA.rex和FB.rex比较最底下的value
不行就这样,先在项目A中引用A的资源,把rex中value复制到一个新txt中
然后B项目引用B的资源,再把A的FA.rex复制回去。
jcyluck 2009-04-15
  • 打赏
  • 举报
回复
不知道楼主是要用到一个什么类型的全局资源
但我感觉你的问题好象不用什么全局资源来解决
楼主可以参考使用静态函数,类,接口等等
yulien 2009-04-15
  • 打赏
  • 举报
回复
cja03 2009-04-15
  • 打赏
  • 举报
回复
应该不会出现这样的问题。。。。。。。
工程属性-设置 把字符串资源添加在这里。
myelse 2009-04-14
  • 打赏
  • 举报
回复
这个可能我解释的有点问题。

在一个项目的Properties文件夹下面有一个Resources.resx文件,这个文件就是这个项目的全局资源文件,在这个文件下定义的任何项,都可以在这个项目中使用,所以我把它叫做全局资源项。

同样在这个项目下的一个窗体,winform的窗体你点开后,至少都包含两个文件FrmName.Designer.cs和FrmName.resx,在FrmName.resx中定义的项是提供给这个窗体使用的。在窗体显示的时候就是通过Designer.cs的代码去动态的调用resx的资源来显示winform的窗体的界面内容,比如某个按钮上面的值,标签上面的数据等等

那么我这里想要一个资源项,在同个项目下的多个窗体共用的时候,就可以把这个项在全局的资源文件Resources.resx中定义,然后在多个窗体中使用。


问题就是上面这里,如果单个项目下使用都不会出现任何问题,如果多个项目同时采用上面所说的操作的话就会产生我最开始说的那种情况(自己项目引用自己的全局资源文件中的项,不是跨项目引用,但是多个项目放在一个解决方案下面)
指间的风 2009-04-13
  • 打赏
  • 举报
回复
这个真的不会,我连你的问题的关键字都找不到。

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧