gpt4 book ai didi

.net - 标签控件在设计时与运行时的行为不同

转载 作者:行者123 更新时间:2023-12-04 13:55:57 25 4
gpt4 key购买 nike

我正在创建一个自定义 Label 控件(通过简单地继承标准 Label 控件并重新绘制背景和文本),因为我需要一个非常具体的背景和边框。在控件的构造函数中,我将 AutoSize 属性设置为 false,以便为新标签设置标准的默认大小。

 Public Sub New()

'Set the default size of the control to 75x24
Me.Height = 24
Me.Width = 75

'Turn off the autosize property.
Me.AutoSize = False

'Turn on double-buffering.
Me.DoubleBuffered = True

End Sub

在我使用此控件的应用程序中,如果我在运行时(在代码中)创建新的自定义标签,则 AutoSize 属性保持为 False,并且它可以正常工作。

如果我在设计时尝试将新的自定义标签添加到我的表单中,它会随 AutoSize 属性设置为 True,而我必须在属性窗口中手动将其设置为 False。这不是一个大问题,但我不明白为什么行为不同。

任何想法导致这种行为差异的原因是什么?

最佳答案

在您的标签类中,您应该覆盖 AutoSize 属性。

//(In C#)
[System.ComponentModel.Browsable(false)]
[System.ComponentModel.DesignerSerializationVisibility(System.ComponentModel.DesignerSerializationVisibility.Hidden)]
public new bool AutoSize
{
get { return base.AutoSize; }
set { base.AutoSize = value; }
}

browsable(false) 将在设计时隐藏该属性,而 DesignerSerializationVisibility 属性将告诉设计器不要将任何代码写入您的设计器文件中。

关于.net - 标签控件在设计时与运行时的行为不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1098367/

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