簡體   English   中英

如何在C#designer.cs代碼中使用常量字符串?

[英]How to use constant strings in C# designer.cs code?

如何在.designer.cs文件中引用常量字符串?

直接的答案是在我的.cs文件中創建一個私有字符串變量,然后編輯designer.cs文件以使用此變量,而不是對字符串進行硬編碼。 但是設計師不喜歡這樣拋出錯誤。 我知道為什么這行不通,但是我不確定最好的選擇是什么。

我的每個UI控件都應該僅以文本作為占位符,然后僅在運行時覆蓋所有文本屬性嗎? 這樣,我就失去了在設計師中看到一切的好處。

我只是想弄清楚如何在將來發生變化時造成最少的干擾。 謝謝。

*.designer.*文件由Visual Studio生成。 除非確實需要,否則根本不需要手動修改它們,因為Visual Studio有時可能會重新生成它們並清除您的更改。

您真正需要做的是將常量字符串視為表單設計者希望使用的資源,以便在生成代碼時使用該資源。

有幾種方法可以在Visual Studio中完成此操作。 最簡單的方法可能是通過控件的數據綁定。 為了演示,將標簽控件放在窗體上,然后查看該控件的屬性。 如果按名稱對屬性進行排序,則在括號中的列表頂部將有兩個屬性: ApplicationSettingsDataBindings 如果將它們下拉,則會看到它們都具有綁定到標簽的Text屬性的選項。 使用這些,您可以將“常量字符串”放入應用程序的設置文件中,並通過ApplicationSettings屬性或任何數據源進行綁定,並通過DataBindings屬性進行DataBindings 然后,表單設計器將為您生成適當的代碼。

對我來說,要實現的目標還不是很清楚,但是通常,如果要避免將所有字符串都硬編碼到設計器.cs文件中,則可以使用資源文件,該文件將在啟動時從中加載。

如果您將表單的“ localizable”屬性設置為“ true”,我相信一切都會自動歸入資源。 另一方面,我距離Windows Forms專家還很遠,所以請捏一點鹽,直到一切正常為止:)

第二種方法是最好的選擇。 因為您不能認為設計師總是會保留您的更改,並且常常使更改消失。 您將要在Page_Init事件方法中進行控件更改。 這樣可以使您的更改顯示在設計器中。

http://msdn.microsoft.com/zh-CN/library/system.web.ui.control.init.aspx

這樣,您就可以將常量保持在您所控制的實際代碼隱藏類中,並且控件將以所需的方式啟動,並且您可以僅控制要更改的內容。

更新:抱歉沒有意識到這是WinForms。 實際上,它在WinForms中甚至更加容易,因為您只需在調用控件初始化之后立即在構造函數中注冊控件。

您要解決什么問題? 如果您嘗試實現本地化,請查看.NET和衛星組件隨附的本地化功能。

如果要解決自定義問題,請使用設置編輯器查看.NET中可用的自定義選項。

為什么需要使用常量字符串?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM