Как изменить свойства объектов winforms во время выполнения?(C ++ / CLI) - PullRequest
0 голосов
/ 24 апреля 2011

Гипотетический:

Существует текстовое поле со значением по умолчанию «test» (this->textBox1->Text = L"test";), и во время выполнения значение свойства text устанавливается на «измененное» оператором в main ().

Холодная, суровая правда:

Это кажется невозможным, потому что объект private. Кроме того, в заголовке формы есть комментарий, в котором говорится, что глупо менять что-либо, поэтому сделать его публичным невозможно.

Вопросы:

  • Собираюсь ли я на это в полностью неправильный путь?

  • Как правильно изменить свойства объектов формы во время выполнения?

  • Если бы я использовал WPF, избежало бы это все вместе? Это не вариант, но мне любопытно.

Спасибо!

Ответы [ 2 ]

1 голос
/ 24 апреля 2011

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

0 голосов
/ 25 апреля 2011
public ref class MyForm: Form
{
    //...
public:
    void SetTextOfTextBox1(System::String ^t)
    {
        this->textBox1->Text=t;
    }
}

А в "главном":

 // ...
 MyForm ^f = gcnew MyForm();
 // ...
 f->SetTextOfTextBox1("modified");
...