【发布时间】:2011-02-23 19:28:39
【问题描述】:
我正在使用 VC++ 2010。
我收到错误 C2228。它说它必须是 .Text 之前的结构、类或联合。
private: System::Void textBox1_TextChanged(System::Object^ sender, System::EventArgs^ e) {
using namespace std;
for(int r=0; r>(sizeof(x)/sizeof(x[0])); r++){
if (x[r][1].find(textBox1.Text) != string::npos){
label1.Text = (label1.Text+x[r][1]);
label2.Text = (label1.Text+x[r][2]);
}
}
}
它基本上搜索一个 2D 数组并查看是否有任何内容与您输入的内容匹配并在您输入时显示它,这是我正在制作的应用程序的主要功能。 它在 if 语句上出错,在它之后的两个语句两次就是这样,.Text 在所有 5 次尝试读取它时都出现错误,与我上面发布的错误相同。
【问题讨论】:
-
信息不足。你甚至没有给出行号。但是
textBox1或label1出了点问题... 不是你想的那样。而且,顺便说一句,我认为您的意思是最后一行的label2。 -
成员 textBox1 定义了吗? label1 & label2 定义了吗?
-
@Ashley:因为不是。它是 C++/CLI,微软的 C++/.NET 混合体。它不是 C++,因为 1) WinForms 在 C++ 中不可用,2)
^引用在 C++ 中无效。 -
@Ashley Davies:它不是 C++,因为它使用 .Net 类型,而 C++ 不是 .Net 语言。也许它是一种有点相似的编程语言,称为 C++/CLI (en.wikipedia.org/wiki/C%2B%2B/CLI)。另请参阅stackoverflow.com/questions/2245196/c-urban-myths/…。
-
抱歉,我对此一无所知,有点误导,因为它在项目选择窗口上显示 C++。谢谢你告诉我