簡體   English   中英

Visual Studio C#Winform Designer是否為控件成員創建奇怪的代碼?

[英]Visual Studio C# Winform Designer is creating strange code for control members?

謝謝大家的寶貴時間。

我正在使用C#.Net 4.0和Visual Studio 2010 Professional。 我在表單上有幾個按鈕,一個richtextbox和一個splitcontainer。 這里沒有很多代碼,並且目前還沒有做很多事情。 解決方案中有兩個項目:分別稱為MyProject和MySupportProject。 該表單位於MyProject項目中。

每當我嘗試運行程序時,都會遇到兩個錯誤:

'MySupportProject.Properties.Resources' is inaccessible due to its protection level
'MySupportProject.Properties.Resources' does not contain a definition for String1'

因此,我來​​看一下設計師,由於某種原因,它會繼續填寫以下內容:

this.rtbStatus.Text = global::MySupportProject.Properties.Resources.String1;

而且我不知道為什么。 我刪除它或注釋掉它,並不斷生成該行。 表單中的RTB(RichTextBox)沒有與之關聯的文本。

在解決方案屬性中,MySupportProject被列為MyProject的依賴項,但是我一輩子都無法弄清楚它試圖對具有特定非可見字符串的特定RichTextBox做什么。 我仔細研究了MySupportProject中的資源,並找到了定義:

    /// <summary>
    ///   Looks up a localized string similar to .
    /// </summary>
    internal static string String1 {
        get {
            return ResourceManager.GetString("String1", resourceCulture);
        }
    }

看起來上面的定義是由某種工具生成的,但是我真的不確定它來自哪里。 有人在我之前從事過該項目,因此他們可以將其放入,但是我從頭開始創建表單,但沒有建立連接。 有沒有人遇到過類似的問題? 如果沒有,還有什么我應該嘗試阻止這種煩人的偶爾的構建失敗嗎? 感謝你的幫助!

我不完全知道這背后的原因,但是您可以使用以下代碼替換該行:

this.rtbStatus.Text = "";

要么:

this.rtbStatus.Text = null;

另外,請嘗試刪除您的字符串資源。 如果無法執行此操作:

  1. 檢查資源文件中是否存儲了其他資源。
  2. 如果是,則將所有其他資源復制到新資源文件中並刪除舊文件。
  3. 如果不是,則只需刪除舊的資源文件(.resx)並創建一個新的資源文件。

暫無
暫無

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

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