我已经在VC ++ 2010 Express版本中创建了一个Windows窗体项目。所以,在那个项目中,我创建了一个Form,它只有一个按钮和一个文本框。此表单的名称为Form1
。
此按钮称为函数FD
,写在同一项目的.cpp
文件中。但是,在运行代码时,我需要使用一些文本更新文本框。我想通过.cpp
文件访问文本框。
我尝试过以下方法:
我收录了#include "Form1.h"
,然后写了textBox1->Text="XYZ"
。但是,在构建它时,它说找不到任何名为textBox1
的成员。
如何从.cpp
文件访问文本框?
编辑:
FD.cpp
#include<stdafx.h>
#include "Form1.h"
... //other includes
void abc()
{
//Some code
textBox1->Text="String to be displayed."
//Some code
}
Form1.h
这是一个简单的GUI表单,其中添加了一个名为button1
的按钮和一个名为textBox1
的文本框。
#include<FD.h>
//code generated by the GUI
void button1_click()
{
abc();
}
答案 0 :(得分:2)
// FD.cpp
void abc(Form1^ f)
{
// Assuming that textBox1 is public. If not, make it public or make
// public get property
f->textBox1->Text="String to be displayed."
//Some code
}
// Form1.h
void button1_click()
{
abc(this);
}
或者:
// FD.cpp
void abc(TextBox^ t)
{
t->Text="String to be displayed."
//Some code
}
// Form1.h
void button1_click()
{
abc(textBox1);
}
另一种方法:将abc
方法返回类型String^
并将其返回值设置为Form1
至textBox1
。优势:abc
对UI级别一无所知。另一种方式:事件http://msdn.microsoft.com/en-us/library/58cwt3zh.aspx
答案 1 :(得分:0)
您收到此错误的原因是您尚未指定的textBox 。仅#include
头文件是不够的,您需要找到与Form1
对象进行通信的方法。您可以通过多种方式完成此任务。
Form1
实例的全局指针Form1
实例的本地指针,可以调用我会选择2。