【问题标题】:error C2039: 'Dispose' : is not a member of 'System::Windows::Forms::ErrorProvider'错误 C2039:“Dispose”:不是“System::Windows::Forms::ErrorProvider”的成员
【发布时间】:2012-07-11 01:50:02
【问题描述】:

我正在尝试使用 ErrorProvider 类在复选框上显示错误。我可以使用以下代码显示错误

errorProvider1->SetError(checkBox1,"Error");

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

errorProvider1->Dispose();

那么这行显示错误

error C2039: 'Dispose' : is not a member of 'System::Windows::Forms::ErrorProvider'

这段代码我可以在vc#中成功运行,但在vc++中不行;

但由于我的要求是在 vc++ 中使用它。

谁能告诉我这段代码有什么问题。

提前致谢

【问题讨论】:

    标签: winforms visual-studio-2010 visual-c++ c++-cli errorprovider


    【解决方案1】:

    根据this articleIDisposable 模式在 C++/CLI 中是不同的,您不能在该语言中实现或调用 Dispose() 方法。

    您必须改用delete 运算符:

    errorProvider1->SetError(checkBox1,"Error");
    delete errorProvider1;  // Equivalent to errorProvider1->Dispose().
    

    【讨论】:

    • 更好的是,只需使用堆栈语义声明errorProvider1,因此根本不需要调用delete
    • @Frédéric Hamidi 感谢您的回复,现在一切正常。
    • @ildjarn 感谢您的回复...如何将 errorProvider1 与堆栈语义一起使用。你能解释一下或举个例子吗?
    • @MayankPrabhakar :您需要说明errorProvider1 的声明位置和方式。 :-] 例如如果它在类范围内,那么答案将与在块范围内不同。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-22
    • 1970-01-01
    相关资源
    最近更新 更多