错误C2039:'Dispose':不是'System :: Windows :: Forms :: ErrorProvider'的成员

May*_*kar 5 c++-cli errorprovider visual-studio-2010 visual-c++ winforms

我试图使用ErrorProvider类来显示复选框上的错误.我可以使用以下代码显示错误

errorProvider1->SetError(checkBox1,"Error");
Run Code Online (Sandbox Code Playgroud)

但是当我尝试使用以下代码处理此errorProvider时

errorProvider1->Dispose();
Run Code Online (Sandbox Code Playgroud)

然后这一行显示错误

error C2039: 'Dispose' : is not a member of 'System::Windows::Forms::ErrorProvider'
Run Code Online (Sandbox Code Playgroud)

本代码我能够在vc#中成功运行,但不能在vc ++中运行;

但是因为我的要求是在vc ++中使用它.

任何人都可以告诉我这段代码中的问题是什么.

提前致谢

Fré*_*idi 7

根据这篇文章,IDisposableC++/CLI中的模式不同,您无法Dispose()使用该语言实现或调用方法.

您必须使用delete运算符:

errorProvider1->SetError(checkBox1,"Error");
delete errorProvider1;  // Equivalent to errorProvider1->Dispose().
Run Code Online (Sandbox Code Playgroud)

  • 更好的是,只需使用堆栈语义声明`errorProvider1`,因此根本不需要`delete`调用. (2认同)