Поиск:

Ответ в темуСоздание новой темы Создание опроса
> VS'08 C++ CLR 
:(
    Опции темы
Arkham
Дата 17.5.2012, 05:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 14.4.2012

Репутация: нет
Всего: нет



Собственно есть чистый пока проект с одной экранной формой.
На форме есть пара текст/комбо боксов, в которые должны попасть данные, им в свойствах указан Modifier - Public.
Вопрос: Каким образом из главного cpp проекта (допустим из функции main), управлять элементами описанными в Form.h ?

Пытался делать что-то на подобие Form1::comboBox1.addString("foo");
Но получаю ошибку "слева от ".addString" должно представлять класс, структуру или объединение"



Это сообщение отредактировал(а) Arkham - 17.5.2012, 05:04
PM MAIL   Вверх
586
Дата 17.5.2012, 06:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2243
Регистрация: 8.5.2006

Репутация: 6
Всего: 146



Обычно, инициализацию компонентов в конструкторе формы проводят. Но если уж так нужно, то вот:
Код
#include "stdafx.h"
#include "Form1.h"

using namespace testApp;

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

    Form1 ^f = gcnew Form1();
    f->comboBox1->Items->Add("abcd");

    Application::Run(f);
    return 0;
}

Для доступа к форме нужна ссылка на экземпляр формы. "Form1" - это класс. "f" - экземпляр формы.
Если нужен доступ к форме из другой формы, то есть несколько вариантов получить указатель на форму. Например, путём явной передачи ссылки на форму, или через Application::OpenForms.

Это сообщение отредактировал(а) 586 - 17.5.2012, 07:09
PM   Вверх
Arkham
Дата 17.5.2012, 11:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 14.4.2012

Репутация: нет
Всего: нет



Цитата

Обычно, инициализацию компонентов в конструкторе формы проводят


Если бы данные были статическими, я бы так и сделал, но теоретически при каждой загрузке программы, данные будут разными.

Цитата

 "Form1" - это класс.


Ах вот в чём фокус) Всё встало на свои места, держал Form1 за готовый экземпляр)
Спасибо большое)
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема »


 




[ Время генерации скрипта: 0.0861 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.