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フォームアプリケーションを選択しました。
初心者ゆえにずっとつまいずいていて、このたび質問させていただくことになりました。
よろしくお願いします。
No.3ベストアンサー
- 回答日時:
すでにANo.2さんが回答してくださいましたが、mainの中のApplication::Run(gcnew Form1());が働かないとフォームに関する処理ができません。
フォームに関する処理はFormが生成されてからFormの中で行ないます。
フォームと関係ない、フォームを表示する前の処理あるいはフォームを閉じてからの処理は main の中で行うことができます。
例えば、何かの条件をチェックして、条件によってはフォームを表示しないでプログラムを終了させる場合はApplication::Run(gcnew Form1());より前に書きます。
フォームを閉じてからの処理は後ろに書きます。
もっとも、ほとんどの処理はフォームと関係しますよね。
何処に何を書くあるいは書かなければいけない内容かを知る必要がありますね。
なるほど~よ~くわかったような気がします。
どちらの方も本当にありがとうございます。
ベストアンサーは1番目に回答してくださったsamtomsanにさせていただきます。
おふたり方どうもありがとうございました。
No.2
- 回答日時:
こんばんは。
ラベルは存在しますが、呼び出している個所が悪いだけでは。
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以外ではダメなんですねぇ。
頭がコンガラがってるのでひとまずゆっくり理解してみることにします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
- Java javaでのプログラム(配列)について質問です. 2 2022/10/14 22:27
- C言語・C++・C# C言語プログラム変更 2 2022/12/21 15:03
- C言語・C++・C# C++初心者です stirng 2 2022/09/20 20:43
- Java Java プログラム public class Main { public static void 3 2023/08/10 23:46
- Visual Basic(VBA) 【VBAエラー】Nextに対するForがありません 対策について 5 2022/11/21 21:26
- C言語・C++・C# 10個の実数に対する降順ソート結果を出力するプログラムを作りたいのですが、以下のプログラムをどう直せ 1 2022/07/09 22:16
- MySQL 参考書に従って入力したつもりでしたが、最後はエラーがでました。 1 2022/09/28 03:45
- C言語・C++・C# カードシャッフルのブログラムを使ってc言語でブラックジャックをしたい 2 2022/04/12 15:13
- C言語・C++・C# 未解決の外部シンボル _printfが関数_mainで参照されました 1 2022/09/18 15:28
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ユーザーフォームを表示中にシ...
-
Excelにて、ユーザーフォームで...
-
ExcelVBAのユーザーフォームの...
-
フォームのアクティブと非アク...
-
フォームのテキストボックスな...
-
VBAでユーザーフォームを再表示...
-
ユーザーフォームのテキストボ...
-
MSGBOXのフォント大きさ変更
-
ユーザーフォームのラベルに時...
-
VBE ユーザーフォーム重複・空...
-
C#でタスクマネージャに表示し...
-
C# TextBoxをもつフォームが非...
-
標準モジュールからフォームを...
-
エスケープキーを押して、フォ...
-
コントロールの存在確認
-
フォームを表示してからメッセ...
-
Excel VBAで別のブックからユ...
-
ユーザーフォーム上に現在日時...
-
エクセルVBAでサブフォーラムの...
-
Accessで、一つのフォーム画面...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ユーザーフォームを表示中にシ...
-
クリックイベントなのに、2回ク...
-
ExcelVBAのユーザーフォームの...
-
ユーザーフォームのテキストボ...
-
Microsoft Formsの「個人情報や...
-
ユーザーフォーム上に現在日時...
-
Form_Load と Form_Activate の...
-
モーダルフォームとモードレス...
-
Excelにて、ユーザーフォームで...
-
VBAでユーザーフォームを再表示...
-
【VBAユーザーフォームで閉じる...
-
MSGBOXのフォント大きさ変更
-
VBA(エクセル)のユーザー...
-
Hideについて(.NET)
-
エクセルVBAのフォームを最...
-
コントロールの存在確認
-
ACCESSのフォーム、開くんです...
-
'ユーザーフォーム右上隅の[×...
-
フォームウィンドウを最前面に...
-
ユーザーフォームのラベルに時...
おすすめ情報