繁体   English   中英

用户控制 - 自定义属性

[英]User Control - Custom Properties

我在 Visual Studio (WinForms C#) 中开发了一个用户控件并有一个问题。

我需要我的用户控件的用户能够更改某些字符串值,并且我希望他们能够将用户控件添加到他们的表单中并单击它以显示我的用户控件的自定义属性所在的属性窗格显示。

如何为我的用户控件拥有自己的自定义属性? 例如:

我的用户控件包含一个文本框,我希望用户能够在设计时通过属性中名为“文本”或“值”的属性更改该文本框的值。

您可以通过属性上的属性来执行此操作,如下所示:

[Description("Test text displayed in the textbox"),Category("Data")] 
public string Text {
  get => myInnerTextBox.Text;
  set => myInnerTextBox.Text = value;
}

类别是属性将出现在 Visual Studio 属性框中的标题。 这是更完整的 MSDN 参考,包括类别列表。

很简单,只需添加一个属性:

public string Value {
  get { return textBox1.Text; }
  set { textBox1.Text = value; }
}

使用 Text 属性有点棘手,UserControl 类有意隐藏它。 您需要覆盖属性以使其恢复正常工作状态:

[Browsable(true), EditorBrowsable(EditorBrowsableState.Always), Bindable(true)]
[DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)]
public override string Text {
  get { return textBox1.Text; }
  set { textBox1.Text = value; }
}

只需将公共属性添加到用户控件即可。

您可以添加[Category("MyCategory")][Description("A property that controls the wossname")]属性以使其更好,但只要它是公共属性,它就应该显示在属性面板中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM