Как использовать Yii :: $ app-> language

Я бы рекомендовал, чтобы вы этого не сделали. Вы действительно хотите иметь класс, который зависит от того, как редактирование текста реализовано в форме, или вы хотите механизм, позволяющий получить и установить текст ?

Я бы предложил последнего. Итак, в вашей форме создайте свойство, которое обертывает свойство Text в управляющем элементе TextBox:

public string FirstName
{
    get { return firstNameTextBox.Text; }
    set { firstNameTextBox.Text = value; }
}

Затем создайте некоторый механизм, через который ваш класс может получить ссылку на форму (например, через contructor). Затем этот класс может использовать свойство для доступа и изменения текста:

class SomeClass
{
    private readonly YourFormClass form;
    public SomeClass(YourFormClass form)
    {
        this.form = form;
    }

    private void SomeMethodDoingStuffWithText()
    {
        string firstName = form.FirstName;
        form.FirstName = "some name";
    }
}

Еще лучше решение будет определять возможные взаимодействия в интерфейсе, и пусть этот интерфейс быть договором между вашей формой и другим классом. Таким образом, класс полностью отделен от формы и может использовать anyting, реализующий интерфейс (который открывает дверь для более легкого тестирования):

interface IYourForm
{
    string FirstName { get; set; }
}

В вашем классе формы:

class YourFormClass : Form, IYourForm
{
    // lots of other code here

    public string FirstName
    {
        get { return firstNameTextBox.Text; }
        set { firstNameTextBox.Text = value; }
    }
}

... и класс:

class SomeClass
{
    private readonly IYourForm form;
    public SomeClass(IYourForm form)
    {
        this.form = form;
    }

    // and so on

}
0
задан gugoan 26 February 2015 в 15:19
поделиться