我更改了 Windows 窗体上标签的文本属性。表单在 VS 2010 表单设计器中显示时会显示正确的新标签。我也改变了字体的颜色。
当我运行程序时,窗口显示旧文本值而不是新文本值。表单在标签上显示新的字体颜色。
源代码中似乎没有出现旧文本值。旧的文本值还隐藏在哪里?
我清理解决方案并重建它,但没有任何改变。
我更改了 Windows 窗体上标签的文本属性。表单在 VS 2010 表单设计器中显示时会显示正确的新标签。我也改变了字体的颜色。
当我运行程序时,窗口显示旧文本值而不是新文本值。表单在标签上显示新的字体颜色。
源代码中似乎没有出现旧文本值。旧的文本值还隐藏在哪里?
我清理解决方案并重建它,但没有任何改变。
Epilog:
"Brian" and "Blogbeard" both had the right direction in suggesting a hidden resource file.
Early in the execution of the code lay a method call to an obscure subsystem that no one knew anything about. That subsystem turned out to be a defunct language translation module which was supposed to translate all of the labels in a form from a native language to a target language.
It was configured to keep the original labels and their translations in a file outside the scope of the IDE. Changes in the form itself were completely ignored if the translator found the label name in its file.
Moving the form contents to another package effectively disabled the translator.
The elegant solution turned out to a three-line change that removed the method call to the translator. (it was no longer required in the application)
一位同事观察到这是将项目从 VS2005 转换为 vs2008 到 VS2010 的工件,并提出了“蛮力”纠正措施。
它确实奏效了。
1)在项目中新建一个空白表格。
2) 在原始表单中,使用表单设计器的“编辑”菜单,使用“全选”和“复制”操作。这会将所有表单对象复制到剪贴板中。
3) 将剪贴板粘贴到空白表单中。
4) 将旧表单中的(大部分)程序代码复制到新表单中,不包括表单设计器生成的任何内容。
5) 从项目中删除旧表单。根据需要进行更改以使用新表单
不是很优雅,但很适合在最后期限前完成。
谢谢你!