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

VC++でラベルに表示できない[.NET]

以下のプログラムですがエラーが出ます。
#include "stdafx.h"
#include "Form1.h"

using namespace CursorXY1;

[STAThreadAttribute]
int main(array<System::String ^> ^args)
{
static POINT Point;

// コントロールが作成される前に、Windows XP ビジュアル効果を有効にします
Application::EnableVisualStyles();
Application::SetCompatibleTextRenderingDefault(false);

// メイン ウィンドウを作成して、実行します
Application::Run(gcnew Form1());

label1->Text="これはラベルです";

return 0;
}

エラー内容:
1>.\Form1.cpp(27) : error C2065: 'label1' : 定義されていない識別子です。
1>.\Form1.cpp(27) : error C2227: '->Text' : 左側がクラス、構造体、共用体、ジェネリック型へのポインタではありません。
1> 型は ''unknown-type'' です。

ヘッダーファイルに「Form1.h,resource.h,stdafx.h」があります。
Designerでlabel1を設置しました。
Windowsフォームアプリケーションを選択しました。
初心者ゆえにずっとつまいずいていて、このたび質問させていただくことになりました。
よろしくお願いします。

A 回答 (3件)

すでにANo.2さんが回答してくださいましたが、mainの中のApplication::Run(gcnew Form1());が働かないとフォームに関する処理ができません。


フォームに関する処理はFormが生成されてからFormの中で行ないます。

フォームと関係ない、フォームを表示する前の処理あるいはフォームを閉じてからの処理は main の中で行うことができます。
例えば、何かの条件をチェックして、条件によってはフォームを表示しないでプログラムを終了させる場合はApplication::Run(gcnew Form1());より前に書きます。
フォームを閉じてからの処理は後ろに書きます。

もっとも、ほとんどの処理はフォームと関係しますよね。

何処に何を書くあるいは書かなければいけない内容かを知る必要がありますね。
    • good
    • 0
この回答へのお礼

なるほど~よ~くわかったような気がします。
どちらの方も本当にありがとうございます。
ベストアンサーは1番目に回答してくださったsamtomsanにさせていただきます。
おふたり方どうもありがとうございました。

お礼日時:2010/06/09 23:16

 こんばんは。


 ラベルは存在しますが、呼び出している個所が悪いだけでは。
 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="これはラベルです";
}
};
}
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
Form1.h以外ではダメなんですねぇ。
頭がコンガラがってるのでひとまずゆっくり理解してみることにします。

お礼日時:2010/06/09 20:45

> 1>.\Form1.cpp(27) : error C2065: 'label1' : 定義されていない識別子です。



Formにラベルが貼り付けてありませんね。

フォームの表示の方法は知っていますか。

この回答への補足

分からないかもしれません...
教えていただけると嬉しいのですが。
申し訳ありません...

補足日時:2010/06/09 20:18
    • good
    • 0
この回答へのお礼

何度も何度もも申し訳ありません。
フォームにはlabel1がちゃんんと張り付けられています。

お礼日時:2010/06/09 20:24

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