有沒有一種方法來自動化該屬性的集合?我們有數百個需要進行本地化的表單,這將成爲一個噩夢,通過所有這些表單將此屬性設置爲true。設置我所有表單的Localizable屬性
有沒有辦法讓Visual Studio在解決方案/項目中將所有表單設置爲Localizable = true?
有沒有一種方法來自動化該屬性的集合?我們有數百個需要進行本地化的表單,這將成爲一個噩夢,通過所有這些表單將此屬性設置爲true。設置我所有表單的Localizable屬性
有沒有辦法讓Visual Studio在解決方案/項目中將所有表單設置爲Localizable = true?
它通過類似條目表示如下(調整.NET Framework版本)在窗體的.resx文件:
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
自動切換所有的值設置爲true很可能是運行的最簡單方法通過Form子類文件,將它們的.resx文件加載爲XML,以測試元素的存在,如果不存在,則添加它。或者,您可以使用ResXResourceReader和ResXResourceWriter來讀取和寫入文件內容。
當您創建新的Windows窗體時,它沒有* .resx文件以及在designer.cs文件中的相關代碼。當您將Form的Localizable屬性設置爲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宏然而,它自動,也不會記錄更改本地化屬性設置爲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()
子類形式,然後找到並替換? –
它不是.NET Form類的一部分,它是一個visual studio屬性 – Pacman