Перегрузка оператора =

Доброго дня. Классический вопрос...итак. Есть две формы. В одной по кнопке вызываю другую. В каждой есть текст бокс. Так вот, по этой же кнопке хотел сделать копирование текста из одного бокса в другой. Код кнопки:
private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
        MyForm1 ^mf1 = gcnew MyForm1();
        mf1->Show();
        //mf1->set_textBox1(this->textBox1->Text);  // с сеттером все работает
        mf1 = this->textBox1->Text; // вот здесь идет присвоение System::String^ в другой текст бокс. Точнее не идёт
 
    }
Код оператора(в другой форме уже):
public: test::MyForm1^ operator=(System::String^ tmp)
    {
        if (this->textBox1->Text != tmp)
            this->textBox1->Text = tmp;
        return this;
    }
Ошибка такова: C2440 =: невозможно преобразовать "System::String ^" в "test::MyForm1 ^" В чём дело? Заранее благодарю.Ох....снят вопрос. Из-за необычности синтаксиса я совсем забыл, что mf1 - это указатель:
*mf1 = this->textBox1->Text;
Быть может кому-то поможет.
2 ответа

Lagos, как-то нелогично перегружать оператор = ради установки текста в TextBox. Лучше сделать свойство
// MyForm1
public: property String^ TextBox1Text {
    String^ get() {
        return textBox1->Text;
    }
    void set(String^ text) {
        textBox1->Text = text;
    }
}
Присвоение
mf1->TextBox1Text = this->textBox1->Text;


OwenGlendower просто только начал работать с Windows Form, до такого еще не дошёл. Но однозначно большое спасибо за науку. Вообще вопрос был поставлен такого рода: Как получить доступ к компоненте с одной формы на другой? Ведь согласно принципу ООП, они закрытые члены, да и лучше перед доступом проверять, все ли с ними нормально...Вот свойство хорошо подходит. Спасибо