如何在运行时修改winforms对象的属性? (C ++ / CLI)

时间:2011-04-24 19:36:40

标签: winforms visual-c++ c++-cli

假设:

有一个默认值为“test”(this->textBox1->Text = L"test";)的文本框,并且在运行时,text(属性)的值由main()中的语句设置为“modified”。

冷酷无情的事实:

这似乎不可能,因为对象是private。此外,表单标题中还有一条注释,表示修改内容是一个愚蠢的想法,因此无法公开。

问题:

  • 我完全是这样做的 错误的方式?

  • 在运行时修改表单对象属性的正确方法是什么?

  • 如果我使用WPF,这会避免这种混乱吗?这不是一个选择,但我很好奇。

谢谢!

2 个答案:

答案 0 :(得分:1)

在派生的表单类中提供操作表单控件的公共包装器方法,并从其他类中调用它们。

答案 1 :(得分:0)

public ref class MyForm: Form
{
    //...
public:
    void SetTextOfTextBox1(System::String ^t)
    {
        this->textBox1->Text=t;
    }
}

在“主要”中:

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