C# 在Visual Studio(设计器视图)中重建时,userControl中的更改将被擦除

C# 在Visual Studio(设计器视图)中重建时,userControl中的更改将被擦除,c#,winforms,user-controls,C#,Winforms,User Controls,我的意图是在另一个名为NavigationBar的用户控件中使用它 虽然我可以看到NavigationItem.cs类的LinkText属性,但当我从属性窗格中更改它时,会弹出一条警告: 警告1您必须重新生成您的 项目的更改 Uboldi.LeftNavigationbar将显示在中 任何开放的设计师 公平地说,我重新构建,然后我刚刚输入的更改就消失了 你知道为什么吗 感谢您抽出时间。也许您的更改没有被设计师保留下来 是否尝试使用DesignerSerializationVisibilityAt

我的意图是在另一个名为NavigationBar的用户控件中使用它

虽然我可以看到NavigationItem.cs类的LinkText属性,但当我从属性窗格中更改它时,会弹出一条警告:

警告1您必须重新生成您的 项目的更改 Uboldi.LeftNavigationbar将显示在中 任何开放的设计师

公平地说,我重新构建,然后我刚刚输入的更改就消失了

你知道为什么吗


感谢您抽出时间。

也许您的更改没有被设计师保留下来

是否尝试使用DesignerSerializationVisibilityAttribute


设计师可能不会保留您的更改

是否尝试使用DesignerSerializationVisibilityAttribute


这是一个很老的问题,但没有答案。以下是我发现的有效方法。希望这能帮助其他人

This is my navigationItem.cs user control:


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Uboldi.Helpers;

namespace Uboldi
{
    public partial class NavigationItem : UserControl
    {
        public bool IsSelected { get; set; }
        private string _linkText = String.Empty;
        [Browsable(true)]
        public string LinkText
        {
            get { return this._linkText; }
            set
            {
                this._linkText = value;
                RefreshDisplay();
            }
        }

        public NavigationItem()
        {
            InitializeComponent();
            RefreshDisplay();
        }

        private void RefreshDisplay()
        {
            if (IsSelected)
                this.BackColor = CustomizationHelper.GetSecondaryColor();
            else
                this.BackColor = CustomizationHelper.GetPrimaryColor();

            lblText.Text = Text;
        }
    }
}

这是旧的,但没有答案。以下是我发现的有效方法。希望这能帮助其他人

This is my navigationItem.cs user control:


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Uboldi.Helpers;

namespace Uboldi
{
    public partial class NavigationItem : UserControl
    {
        public bool IsSelected { get; set; }
        private string _linkText = String.Empty;
        [Browsable(true)]
        public string LinkText
        {
            get { return this._linkText; }
            set
            {
                this._linkText = value;
                RefreshDisplay();
            }
        }

        public NavigationItem()
        {
            InitializeComponent();
            RefreshDisplay();
        }

        private void RefreshDisplay()
        {
            if (IsSelected)
                this.BackColor = CustomizationHelper.GetSecondaryColor();
            else
                this.BackColor = CustomizationHelper.GetPrimaryColor();

            lblText.Text = Text;
        }
    }
}

@Sergio它们被称为属性而不是属性。:)@千叶谢谢。我认为出现这个问题是因为我需要给那个属性另一个装饰器,包括可浏览的,对吗?有什么想法吗?@Sergio它们被称为属性而不是属性@千叶谢谢。我认为出现这个问题是因为我需要给那个属性另一个装饰器,包括可浏览的,对吗?有什么想法吗?