簡體   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