Visual c++ visualc&x2B+;(CLR)从源文件访问richtextbox < >我使用C++(CLR)创建了一个表单。 我已经添加了一个richtextbox,我需要使它在我的源文件中可见,以便从那里更改文本。 总而言之: 我的表单中有一个richtextbox.h。我需要从Source.cpp更改此richtextbox的文本。我该怎么做

Visual c++ visualc&x2B+;(CLR)从源文件访问richtextbox < >我使用C++(CLR)创建了一个表单。 我已经添加了一个richtextbox,我需要使它在我的源文件中可见,以便从那里更改文本。 总而言之: 我的表单中有一个richtextbox.h。我需要从Source.cpp更改此richtextbox的文本。我该怎么做,visual-c++,visual-studio-2013,global-variables,richtextbox,Visual C++,Visual Studio 2013,Global Variables,Richtextbox,通过这样做来修复它: 在.cpp源文件中创建新函数,如下所示: void TEST(System::Windows::Forms::RichTextBox ^ changin) { changin->Text = "TEST"; } 而不是在.h文件中 void TEST(System::Windows::Forms::RichTextBox ^ changin); 按下按钮时如下所示: 其中,richTextBox4是应从.cpp文件中修改的文本。通过表单中的公共函数传递

通过这样做来修复它:

在.cpp源文件中创建新函数,如下所示:

void TEST(System::Windows::Forms::RichTextBox ^ changin)

{

    changin->Text = "TEST";
}
而不是在.h文件中

void TEST(System::Windows::Forms::RichTextBox ^ changin);
按下按钮时如下所示:


其中,richTextBox4是应从.cpp文件中修改的文本。

通过表单中的公共函数传递文本,并在表单中更新文本。 这样可以保存对象封装

在表单中,按以下方式添加方法:

在表单中,您有一个私有字段:

private RichTextBox rtb;
rtb是对包含RichTextBox的用户控件的引用,该控件通过重写RichTextBox文本属性来公开RichTextBox文本属性:

 public override string Text
    {
        get
        {
        return rtb.Text;
        }
        set
        {
        rtb.Text = value;
        }
    }
然后通过表单中的公共方法,您可以访问RichTextBox

public void SetText()
        {
            rtb.Text = "test_text";
        }
你可以在这里看到同样的想法:

更新:看看下面的示例,它强调了我上面的解释:


我希望它足够清楚。

你能举个小例子吗?我是一个新的管理C++开始学习和体验它2天AGOI仍然不能使它工作。首先,我得到标识符覆盖是未定义的。这就是我所需要的,使richtextbox的变量在我的源文件中可用。以某种方式使其全局化,以便我可以从.cpp文件访问它。这让我感到震惊,因为我说,我是VisualC++(CLR)和VisualStudio的新手。我尝试像这样改变.CPP文件的值(也使RICText文本框从私有的)Prime1:::MyFr::RixText Box4:> text =“text”;但我得到了这个错误:“非静态成员引用必须与特定对象相关”,编译后:“Text”必须指向class/struct/union/generic类型“尝试将其设置为公共变量我这样设置了“public:System::Windows::Forms::RichTextBox^richTextBox4”;我得到了这些错误
public void SetText()
        {
            rtb.Text = "test_text";
        }