0

这是我的代码:

if (r->Value == "Off"){
     if (checkBox1->Checked)
          checkBox1->Control::InvokeOnClick(checkBox1,EventArgs::Empty);
}
else if (r->Value == "Off") {
     if (!checkBox1->Checked)
          checkBox1->Control::InvokeOnClick(checkBox1,EventArgs::Empty);
}

和错误:

1>c:\users\lukasz\desktop\project\General.h(2204): error C3767: 'System::Windows::Forms::Control::InvokeOnClick': candidate function(s) not accessible
1>c:\users\lukasz\desktop\project\General.h(2208): error C3767: 'System::Windows::Forms::Control::InvokeOnClick': candidate function(s) not accessible

它出什么问题了?

4

2 回答 2

2

您没有收到最大的编译器错误消息。但很难责怪它,你是在最大限度地把它弄糊涂。您应该在 之后使用成员的名称checkbox1->。相反,您指定了一个名 Control。

请避免寻找从代码中单击控件的方法,这是用户所做的事情。InvokeOnClick 不可访问的事实并非偶然。此处的目的是设置 Checked 属性。所以只需设置它:

 if (r->Value == "Off") checkBox1->Checked = false;
 else if (r->Value == "On") checkBox1->Checked = true;

猜测最初的意图。

于 2012-07-11T19:40:18.927 回答
0

好吧,Control应该是一个类的名称,以便能够通过 调用其静态成员函数::,但它显然不是一个类。要么Control是对象,要么是指向对象的指针,我认为您不能::与它一起使用。只是从 C++ 的角度推理这个问题(最初)被标记了。

于 2012-07-11T18:51:38.667 回答