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 に答える