Я бы порекомендовал, чтобы вы этого не сделали.Вы действительно хотите иметь класс, который зависит от того, как редактирование текста реализовано в форме, или вы хотите механизм, позволяющий вам получать и устанавливать текст ?
Iпредложил бы последнее.Итак, в вашей форме создайте свойство, которое переносит свойство Text
рассматриваемого элемента управления TextBox
:
public string FirstName
{
get { return firstNameTextBox.Text; }
set { firstNameTextBox.Text = value; }
}
Затем создайте некоторый механизм, с помощью которого ваш класс может получить ссылку на формунапример, через конструктор).Тогда этот класс может использовать свойство для доступа к тексту и его изменения:
class SomeClass
{
private readonly YourFormClass form;
public SomeClass(YourFormClass form)
{
this.form = form;
}
private void SomeMethodDoingStuffWithText()
{
string firstName = form.FirstName;
form.FirstName = "some name";
}
}
Еще лучше решение будет определять возможные взаимодействия в интерфейсе, и пусть этот интерфейс будетконтракт между вашей формой и другим классом.Таким образом, класс полностью отделен от формы и может использовать любой, реализующий интерфейс (который открывает двери для гораздо более простого тестирования):
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
}