- ベストアンサー
VC++でラベルに表示できない[.NET]
- VC++でラベルに表示できないエラーが発生しています。
- プログラム中のlabel1が定義されていない識別子としてエラーが出ています。
- 初心者がつまずいているVC++でのラベル表示エラーについて質問しました。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
すでにANo.2さんが回答してくださいましたが、mainの中のApplication::Run(gcnew Form1());が働かないとフォームに関する処理ができません。 フォームに関する処理はFormが生成されてからFormの中で行ないます。 フォームと関係ない、フォームを表示する前の処理あるいはフォームを閉じてからの処理は main の中で行うことができます。 例えば、何かの条件をチェックして、条件によってはフォームを表示しないでプログラムを終了させる場合はApplication::Run(gcnew Form1());より前に書きます。 フォームを閉じてからの処理は後ろに書きます。 もっとも、ほとんどの処理はフォームと関係しますよね。 何処に何を書くあるいは書かなければいけない内容かを知る必要がありますね。
その他の回答 (2)
- machongola
- ベストアンサー率60% (434/720)
こんばんは。 ラベルは存在しますが、呼び出している個所が悪いだけでは。 Form1.hの中に書きます。 namespace winclr { using namespace System; using namespace System::ComponentModel; using namespace System::Collections; using namespace System::Windows::Forms; using namespace System::Data; using namespace System::Drawing; using namespace System::Runtime::InteropServices; /// <summary> /// Form1 の概要 /// /// 警告: このクラスの名前を変更する場合、このクラスが依存するすべての .resx ファイルに関連付けられた /// マネージ リソース コンパイラ ツールに対して 'Resource File Name' プロパティを /// 変更する必要があります。この変更を行わないと、 /// デザイナと、このフォームに関連付けられたローカライズ済みリソースとが、 /// 正しく相互に利用できなくなります。 /// </summary> public ref class Form1 : public System::Windows::Forms::Form { public: Form1(void) { InitializeComponent(); // //TODO: ここにコンストラクタ コードを追加します // //取りあえずここら辺 label1->Text="これはラベルです"; } protected: /// <summary> /// 使用中のリソースをすべてクリーンアップします。 /// </summary> ~Form1() { if (components) { delete components; } } //又はLoadイベントを追加して、ここら辺 private: System::Void Form1_Load(System::Object^ sender, System::EventArgs^ e) { label1->Text="これはラベルです"; } }; }
お礼
回答ありがとうございます。 Form1.h以外ではダメなんですねぇ。 頭がコンガラがってるのでひとまずゆっくり理解してみることにします。
- samtomsan
- ベストアンサー率55% (1060/1897)
> 1>.\Form1.cpp(27) : error C2065: 'label1' : 定義されていない識別子です。 Formにラベルが貼り付けてありませんね。 フォームの表示の方法は知っていますか。
お礼
何度も何度もも申し訳ありません。 フォームにはlabel1がちゃんんと張り付けられています。
補足
分からないかもしれません... 教えていただけると嬉しいのですが。 申し訳ありません...
お礼
なるほど~よ~くわかったような気がします。 どちらの方も本当にありがとうございます。 ベストアンサーは1番目に回答してくださったsamtomsanにさせていただきます。 おふたり方どうもありがとうございました。