プロが教えるわが家の防犯対策術!

Visual C++ 2005 Express Editionを勉強中で、あるWEBサイトで紹介されていたサンプルプログラムhttp://homepage3.nifty.com/ishidate/vcpp05_3/vcp …

を使って、コンボボックスやテキストボックスを配置して以下のコードを入力しました。

private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
double a=double::Parse(textBox1->text);
double b=double::Parse(textBox2->text);
int indexNumber=comboBox1->SelectedIndex;
double c;
switch(indexNumber){
case 0:c=a+b;break;
case 1:c=a-b;break;
case 2:c=a*b;break;
case 3:c=a/b;break;
}
label1->text=c.ToString();
}


private:System::Void Form1_Load(System::Object^ sender, System::EventArgs^ e){
comboBox1->SelectedIndex=0;
}

コードを”デバッグなしで実行”で動かそうとすると以下のようなエラーメッセージが出力されました。


>C801.cpp
1>c:\mywork\felicareader_test\c801\c801\Form1.h(138) : error C2248: 'System::Windows::Forms::Control::text' : private メンバ (クラス 'System::Windows::Forms::Control' で宣言されている) にアクセスできません。
1> c:\mywork\felicareader_test\c801\c801\Form1.h(23) : 'System::Windows::Forms::Control::text' の宣言を確認してください。
1> c:\windows\microsoft.net\framework\v2.0.50727\system.windows.forms.dll : 'System::Windows::Forms::Control' の宣言を確認してください。
1>c:\mywork\felicareader_test\c801\c801\Form1.h(139) : error C2248: 'System::Windows::Forms::Control::text' : private メンバ (クラス 'System::Windows::Forms::Control' で宣言されている) にアクセスできません。
1> c:\mywork\felicareader_test\c801\c801\Form1.h(23) : 'System::Windows::Forms::Control::text' の宣言を確認してください。
1> c:\windows\microsoft.net\framework\v2.0.50727\system.windows.forms.dll : 'System::Windows::Forms::Control' の宣言を確認してください。
1>c:\mywork\felicareader_test\c801\c801\Form1.h(148) : error C2248: 'System::Windows::Forms::Control::text' : private メンバ (クラス 'System::Windows::Forms::Control' で宣言されている) にアクセスできません。
1> c:\mywork\felicareader_test\c801\c801\Form1.h(23) : 'System::Windows::Forms::Control::text' の宣言を確認してください。
1> c:\windows\microsoft.net\framework\v2.0.50727\system.windows.forms.dll : 'System::Windows::Forms::Control' の宣言を確認してください。
1>ビルドログは "file://c:\mywork\felicareader_test\C801\C801\Debug\BuildLog.htm" に保存されました。
1>C801 - エラー 3、警告 0
========== ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ ==========


エラーが3つでて、それをダブルクリックしてみると、どうやら、

・double a=double::Parse(textBox1->text);
・double b=double::Parse(textBox2->text);
・label1->text=c.ToString();

この3つの文に問題があるということらしいのですが、原因がよくわかりません。
この原因わかるかたいらっしゃいましたらぜひご教授よろしくお願いいたします。

A 回答 (2件)

単に大文字になっていないだけとか。



C++言語は大文字と小文字を区別しますので、

int text;
int Text;

は別のものです。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

解決しました。

お礼日時:2009/05/25 18:10

外部に公開しているのは『Text』だと思いますよ


T(大文字) + ext(小文字)になります
すべてが小文字のtextはコントロール内部で処理に利用しているものですので
外部から直接いじることは出来ません
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

解決しました。以後気をつけます。

お礼日時:2009/05/25 18:10

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!