C# 救命啊,我能';Don’不要将我的属性放入designer PropertyGrid中

C# 救命啊,我能';Don’不要将我的属性放入designer PropertyGrid中,c#,editor,designer,propertygrid,C#,Editor,Designer,Propertygrid,这有什么问题?属性LeftImage未显示在PropertyGrid(WinForms.NET 3.5)中 private Image\u LeftImage; /// ///设置显示在轨迹栏左侧的小图像 /// [ 描述(“出现在轨迹栏左侧的小图像”), 类别(“外观”), EditorAttribute(typeof(System.Drawing.Design.ImageEditor),typeof(System.Drawing.Design.UITypeEditor)), Defaul

这有什么问题?属性LeftImage未显示在PropertyGrid(WinForms.NET 3.5)中

private Image\u LeftImage;
/// 
///设置显示在轨迹栏左侧的小图像
/// 
[
描述(“出现在轨迹栏左侧的小图像”),
类别(“外观”),
EditorAttribute(typeof(System.Drawing.Design.ImageEditor),typeof(System.Drawing.Design.UITypeEditor)),
DefaultValueAttribute(typeof(Image),“null”),
可浏览(true),可编辑可浏览(editorbrowsebleState.Always)
]
公众形象
{
私有get{return\u LeftImage;}
设置
{
if(value.Height!=16 | | value.Width!=16)
{
_LeftImage=新位图(值,新大小(16,16));
}
else _LeftImage=值;
使无效();
}
}

我哪里出错了???IDE没有任何抱怨,它编译得很好,所有其他属性都显示得很好。有什么想法吗?

删除LeftImage的get语句上的私有访问器。换成

get { return m_LeftImage; }

谢谢我试试看!过几天我会记下你的答案,我现在无法尝试!现在我试过了,成功了!但是public是我能拥有的唯一访问器吗?如果我出于某种原因想使用限制访问器呢?这是不可能的吗?不,您将成为一个非限制访问器。创建此属性并将其添加到属性网格是有原因的。您正在设置Browsable=true,因此此之外的类可以在设计器中设置此设置。这几乎就是公共财产的定义。其他任何方式都没有意义。假设有一个文本框,其设计器属性为MultiLine,但您不能从设计器访问它。重点是什么?很明显,当你想到这一点时,这并不令人震惊。。。我只是有点迟钝……我可以在设计时将属性设置为公共,但在运行时将其设置为私有吗?(也许这是另一个愚蠢的问题,我想不出你会想这样做的情况……)
get { return m_LeftImage; }