Как я могу получить свойство Text для инициализации имени объекта во время разработки? - PullRequest
0 голосов
/ 10 июня 2010

Когда вы добавляете метку в форму из панели инструментов, ее текст по умолчанию соответствует имени элемента (label1, label2 и т. Д.).Как я могу сделать это с помощью пользовательского элемента управления?Пока у меня есть следующее, что позволяет мне изменять текст через окно свойств:

private string _text;

[BrowsableAttribute(true)]
public override string Text
{
    get { return _text; }
    set
    {
        _text = value;
        lblID.Text = _text;
    }
}

Видимо, приведенный выше код работает как есть, но я не уверен, почему.Text по умолчанию автоматически присваивается имя объекта?Вопрос по-прежнему касается других свойств, которые не перекрывают Text.

Ответы [ 3 ]

0 голосов
/ 10 июня 2010

Загляните в System.ComponentModel.DefaultValueAttribute

0 голосов
/ 10 июня 2010

Очевидно, свойство Text автоматически устанавливается на имя объекта при наследовании от UserControl.Работает следующий код:

public partial class CustomControl: UserControl
{
    public string Extension { get; set; }

    private string _text;

    [BrowsableAttribute(true)] // Initializes to "customControlN"
    public override string Text
    {
        get { return _text; }
        set { _text = value; }
    }
}
0 голосов
/ 10 июня 2010
private string _text = "default value"
...