gpt4 book ai didi

c# - 从 VS 设计器隐藏 WinForm UserControl 自定义属性

转载 作者:行者123 更新时间:2023-11-30 12:45:34 35 4
gpt4 key购买 nike

Visual Studio 在设计时错误地调用了我的 UserControl 的自定义属性。

我已经阅读了很多关于使用 [Browsable( false )][DesignerSerializationVisibility( DesignerSerializationVisibility.Hidden )] 属性的帖子,但这对我。

要重现此问题,请使用 Visual Studio 创建一个新的 Windows 窗体应用程序,然后将一个用户控件 添加到您的项目中,并将该用户控件拖到您的窗体上.将公共(public)自定义属性添加到您的用户控件,如下所示。

public partial class UserControl1 : UserControl
{
public UserControl1()
{
InitializeComponent();
}

[Browsable( false )]
[DesignerSerializationVisibility( DesignerSerializationVisibility.Hidden )]
public bool AreYouThere
{
get
{
MessageBox.Show( "Yes I Am Here!" );
return true;
}
}
}

当窗体在 Visual Studio 设计器中打开时,如果我强制解决方案清理然后重建,我将看到一个带有文本“是的,我在这里!”的消息框,表明 Visual Studio 调用了 AreYouThere 我的用户控件上的属性。

这不应该发生,因为我已经用 [Browsable( false )][DesignerSerializationVisibility( DesignerSerializationVisibility.Hidden )]< 修饰了 AreYouThere 属性/strong> 属性。

知道为什么会这样吗?

(此问题出现在 Visual Studio 2010 和 2013 上)。

最佳答案

为了在任何可能的地方隐藏一个属性,你必须用这些属性来标记它

[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
[EditorBrowsable(EditorBrowsableState.Never)]
[Bindable(false)]
[Browsable(false)]

关于c# - 从 VS 设计器隐藏 WinForm UserControl 自定义属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24213300/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com