Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > Windows Forms
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.09.2010, 12:44   #1
borik120
Пользователь
 
Регистрация: 17.01.2010
Сообщений: 30
По умолчанию обратиться к label на форме

пользуюсь visual studio. создал с помощью редактора форму, на форме лэйбл TestLabel. не могу обратиться к нему из main.cpp, хотя в main.cpp строка #include "Form1.h" есть.
на строку
TestLabel.Text="123";
ругается
1>.\main.cpp(24) : error C2065: 'TestLabel' : undeclared identifier
не пойму в чем дело(хотя уверен что какая то мелочь). заранее спасибо

Последний раз редактировалось borik120; 13.09.2010 в 12:46.
borik120 вне форума Ответить с цитированием
Старый 13.09.2010, 12:49   #2
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

Может
Код:
Form1.TestLabel.Text="123";
?
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Старый 13.09.2010, 18:38   #3
borik120
Пользователь
 
Регистрация: 17.01.2010
Сообщений: 30
По умолчанию

так я уже пробовал. ругается на ту же строку:
1>.\main.cpp(24) : error C2143: syntax error : missing ';' before '.'
borik120 вне форума Ответить с цитированием
Старый 13.09.2010, 18:44   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

а можно Form.h увидеть?
и желательно еще всю процедуру в которой пытаетесь(с заголовком)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 13.09.2010, 19:05   #5
borik120
Пользователь
 
Регистрация: 17.01.2010
Сообщений: 30
По умолчанию

main.cpp только сдесь он называется elektrika.cpp

Код:
// Elektrika.cpp : main project file.

#include "stdafx.h"
#include "Form1.h"
#include "Complex.h"
#include <iostream>  

using namespace std;






[STAThreadAttribute]
int main(array<System::String ^> ^args)
{
	// Enabling Windows XP visual effects before any controls are created
	Application::EnableVisualStyles();
	Application::SetCompatibleTextRenderingDefault(false); 
	

	// Create the main window and run it
	Application::Run(gcnew Form1());
Form1.TestLabel.Text="123";

  

	return 0;
}
Form1.h (ну конечно на нем не только 1н лэйбл)
Код:
 

#pragma once


namespace Elektrika {

	using namespace System;
	using namespace System::ComponentModel;
	using namespace System::Collections;
	using namespace System::Windows::Forms;
	using namespace System::Data;
	using namespace System::Drawing;

	
	public ref class Form1 : public System::Windows::Forms::Form
	{
	public:
		Form1(void)
		{
			InitializeComponent();
			//
			//TODO: Add the constructor code here
			//
		}

	protected:
		/// <summary>
		/// Clean up any resources being used.
		/// </summary>
		~Form1()
		{
			if (components)
			{
				delete components;
			}
		}
	
	public: System::Windows::Forms::Label^  TestLabel;



	protected: 

	protected: 

	private:
		/// <summary>
		/// Required designer variable.
		/// </summary>
		System::ComponentModel::Container ^components;

#pragma region Windows Form Designer generated code
		/// <summary>
		/// Required method for Designer support - do not modify
		/// the contents of this method with the code editor.
		/// </summary>
		void InitializeComponent(void)
		{
			System::ComponentModel::ComponentResourceManager^  resources = (gcnew System::ComponentModel::ComponentResourceManager(Form1::typeid));
			
			this->TestLabel = (gcnew System::Windows::Forms::Label());
			(cli::safe_cast<System::ComponentModel::ISupportInitialize^  >(this->pictureBox1))->BeginInit();
			this->SuspendLayout();
			
			// TestLabel
			// 
			this->TestLabel->AutoSize = true;
			this->TestLabel->Location = System::Drawing::Point(354, 496);
			this->TestLabel->Name = L"TestLabel";
			this->TestLabel->Size = System::Drawing::Size(41, 13);
			this->TestLabel->TabIndex = 40;
			this->TestLabel->Text = L"label10";
			this->TestLabel->Click += gcnew System::EventHandler(this, &Form1::TestLabel_Click);
			// 
			// Form1
			// 
			this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
			this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
			this->ClientSize = System::Drawing::Size(766, 563);
			this->Controls->Add(this->TestLabel);
			
			this->Name = L"Form1";
			this->Text = L"Халява";
			this->Load += gcnew System::EventHandler(this, &Form1::Form1_Load);
			(cli::safe_cast<System::ComponentModel::ISupportInitialize^  >(this->pictureBox1))->EndInit();
			this->ResumeLayout(false);
			this->PerformLayout();

		}
#pragma endregion
	private: System::Void label1_Click(System::Object^  sender, System::EventArgs^  e) {
			 }
	private: System::Void Form1_Load(System::Object^  sender, System::EventArgs^  e) {
			 }
private: System::Void textBox2_TextChanged(System::Object^  sender, System::EventArgs^  e) {
		 }
private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
		 }
private: System::Void TestLabel_Click(System::Object^  sender, System::EventArgs^  e) {
		 }
};
}

Последний раз редактировалось borik120; 13.09.2010 в 19:11.
borik120 вне форума Ответить с цитированием
Старый 13.09.2010, 19:30   #6
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

там надо не . а -> использовать получается
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 13.09.2010, 21:56   #7
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

И, кстати, скорее всего, еще
Код:
Electrica::Form1 /*и т.д.*/
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Старый 14.09.2010, 17:47   #8
borik120
Пользователь
 
Регистрация: 17.01.2010
Сообщений: 30
По умолчанию

к сожалению не помогло.

Последний раз редактировалось borik120; 14.09.2010 в 17:57.
borik120 вне форума Ответить с цитированием
Старый 16.09.2010, 22:33   #9
sashonk
Форумчанин
 
Регистрация: 26.10.2009
Сообщений: 170
По умолчанию

насколько я вижу, в main.cpp вы обращаетесь к классу, а не к объекту.
возможно, имеет смысл написать как-нибудь так:
Код:
Form1^ form = gcnew Form1();
form->TestLabel->Text = "bla-bla-bla...";
Application::Run(form);

Последний раз редактировалось sashonk; 16.09.2010 в 23:04.
sashonk вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Почему из метода класса нельзя обратиться к компоненту на форме? Дима я Общие вопросы Delphi 2 28.03.2010 13:21
vba создать label на форме borik120 Microsoft Office Excel 5 19.02.2010 15:01
Непрозрачный LABEL на прозрачной форме CraZZy RabbIt Общие вопросы Delphi 11 16.02.2009 19:45
Как обратиться к активной форме? Dimon88 Помощь студентам 4 18.10.2008 00:03
как обратиться к невидемой форме Scorpeon Общие вопросы Delphi 3 29.06.2007 16:16