winforms - 设置我所有表单的可本地化属性

标签 winforms visual-studio-2010 localization

有没有办法自动设置此属性?我们有数百个表单需要本地化,将所有这些表单设置为 true 将是一场噩梦。

有没有办法让 Visual Studio 将解决方案/项目中的所有表单设置为 Localized = true?

最佳答案

当您创建一个新的Windows窗体时,它没有*.resx文件以及designer.cs文件中的相关代码。当您将表单的 Localized 属性设置为 True 时,VS 会将以下代码添加到 Designer.cs 中,同时还会生成并添加 *.resx 文件。

        System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Form2));
        this.SuspendLayout();
        // 
        // Form2
        // 
        resources.ApplyResources(this, "$this");
        this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
        this.Name = "Form2";
        this.ResumeLayout(false);

由于 VS 添加了 *.resx 文件,因此无法仅查找和替换或剪切和粘贴代码。

我尝试记录一个 VS 宏来自动化它,但是,它不会记录将 Localized 属性更改为 True(不知道为什么)

这个临时宏可能是您的一个开始。您可以编写获取表单文件名列表并使用下面的宏代码循环遍历它们。

    DTE.Windows.Item(Constants.vsWindowKindSolutionExplorer).Activate()
    DTE.ActiveWindow.Object.GetItem("WindowsFormsApplication1\WindowsFormsApplication1\Form3.cs").Select(vsUISelectionType.vsUISelectionTypeSelect)
    DTE.ActiveWindow.Object.DoDefaultAction()
    DTE.Windows.Item(Constants.vsWindowKindProperties).Activate()

关于winforms - 设置我所有表单的可本地化属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9012453/

相关文章:

c# - 如何使用 backgroundworker 更新 GUI?

c++ - 如何使用 Visual C++ 2010 Express 设置 SAPI?

.net - 通常最好使用 StringComparison.OrdinalIgnoreCase 或 StringComparison.InvariantCultureIgnoreCase?

c++ - 调试 session 期间的内存泄漏 - 可能的威胁?

localization - Dart Intl 库的翻译问题

swift - 稍后在 Xcode 中生成 .strings 文件

c# - 更改 ListBox 的选择会更改其他 ListBox 的选择。这是怎么回事?

c# - 从 Windows 系统写入具有 Samba 服务器的 Linux 系统中存在的文件

c# - 从名称中删除所有元音

asp.net - 如何在不编译、不复制SVN文件的情况下发布完整的网站