hul*_*ist 1 c# intellisense visual-studio
在许多代码示例中,我发现正在使用的Control对象的DisplayRectangle属性.但是,此属性不会出现在intellisense弹出窗口中,也不会显示任何语法突出显示,但它会按预期编译和工作.
我应该使用这种财产吗?
我怎样才能发现它们中的更多,它们可以在intellisense中被激活吗?
更新/澄清:我现在发现,它似乎取决于哪个控件.以下代码编译:
Control c = sender as Control;
Form f = sender as Form;
PictureBox p = sender as PictureBox;
Console.Write(c.DisplayRectangle); // No Intellisense
Console.Write(f.DisplayRectangle); // Intellisense
Console.Write(p.DisplayRectangle); // No Intellisense
Run Code Online (Sandbox Code Playgroud)
我的问题是关于PictureBox的DisplayRectangle,或者一般的控件.
这是财产的声明:
[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
[EditorBrowsable(EditorBrowsableState.Advanced)]
[Browsable(false)]
[SRDescription("ControlDisplayRectangleDescr")]
public virtual Rectangle DisplayRectangle
{
get
{
return new Rectangle(0x0, 0x0, this.clientWidth, this.clientHeight);
}
}
Run Code Online (Sandbox Code Playgroud)
从[Browsable]开始,该属性确保属性不会显示在"属性"窗口中.这是有道理的,因为它是一个运行时属性,没有setter.这也是与[DesignerSerializationVisibility]的相关性,它确保不会将属性值写入InitializeComponent()方法.[SRDescription]用于本地化.
[EditorBrowsable]与您的问题相关.使用EditorBrowsableState.Advanced可确保IntelliSense仅在编辑器以"显示高级IntelliSense信息"模式运行时才显示该属性.我知道使用此功能的唯一IDE是VB.NET,其IntelliSense弹出窗口有一个"全部"选项卡,但默认为"公共".但不是C#IDE,你标记问题的语言.
我猜你实际上是用VB.NET编程,而不是C#编程.单击弹出窗口中的"全部"选项卡.
| 归档时间: |
|
| 查看次数: |
1921 次 |
| 最近记录: |