使用我的navigationItem usercontrol:
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; }
public string Text { get; set; }
public NavigationItem()
{
InitializeComponent();
RefreshDisplay();
}
private void RefreshDisplay()
{
if (IsSelected)
this.BackColor = CustomizationHelper.GetSecondaryColor();
else
this.BackColor = CustomizationHelper.GetPrimaryColor();
}
}
}
在Visual Studio中,我可以看到IsSelected属性,但不能看到Text属性。
有什么理由?
答案 0 :(得分:3)
Text属性继承自UserControl。在隐藏的地方,用户控件没有显示文本的有意义的方式。您必须再次继承它并关闭所有属性以使其隐藏。像这样:
[Browsable(true)]
[EditorBrowsable(EditorBrowsableState.Always)]
[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
[Bindable(true)]
public override string Text {
get { return base.Text; }
set { base.Text = value; }
}
答案 1 :(得分:1)
您需要使用BrowsableAttribute在设计时属性列表中标记要显示的属性。
[Browsable(true)]
public bool Text { get; set; }
猜测,继承了IsSelected属性,并设置了此属性。我可能已经关闭了,因为我觉得如果是这种情况,编译器会警告你正在隐藏一个继承的属性。