Модераторы: gambit, Partizan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Обращение к форме из своего класса 
:(
    Опции темы
caliphornia
Дата 28.11.2011, 17:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Здравствуйте.
Как обратиться к элементу формы из своего собственно класса?
Есть необходимость заполнять компонент richTextBox на форме из класса.
класс по обработке данных: 
public ref class myClass
{
public:
   static void myProc()
{
//обработка
richTextBox1->Lines->Add("что то");//выдает ошибки ?????
}
}

Среде - Visual Studio 2010,
Язык - С++,
Тип проекта - Windows Form Aplication
или может я не правильно обратился к элементу или описал класс?


PM MAIL   Вверх
borisbn
Дата 28.11.2011, 18:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Цитата(caliphornia @  28.11.2011,  17:35 Найти цитируемый пост)
public ref class myClass

Цитата(caliphornia @  28.11.2011,  17:35 Найти цитируемый пост)
Язык - С++,

 smile 
В смысле это - не Си++, а Си.Net (CLR или как там его... нечто среднее между Си++ и Си#)
Думаю проблема в том, что ф-ция myProc static.
В Си++ (не знаю как в дотНете) к нестатическим членам класса (а судя по всему, richTextBox1 таковым является) нельзя обращаться из static-функций


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
caliphornia
Дата 28.11.2011, 19:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



тем не менее что вы предложите по решению проблемы?
PM MAIL   Вверх
vponomarov
Дата 12.1.2012, 18:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 407
Регистрация: 11.8.2007
Где: Киев

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



Цитата(caliphornia @  28.11.2011,  19:42 Найти цитируемый пост)
тем не менее что вы предложите по решению проблемы? 

передавайте richTextBox, который нужно изменить как аргумент в функцию myProc.


--------------------
user posted image
user posted image
PM MAIL ICQ   Вверх
diadiavova
Дата 13.1.2012, 10:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

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



Цитата(caliphornia @  28.11.2011,  18:35 Найти цитируемый пост)
или может я не правильно обратился к элементу или описал класс?

Не знаю как в проектах с++, но в шарпе к примеру для всех элементов управления, добавленных в дизайнере создаются приватные поля и из другого класса они естественно не видны. Кроме того, свойство Lines ричтекстбокса представляет из себя массив строк, а у массива просто нет метода Add. Добавлять текст в ричтекстбокс можно с помощью метода AppendText. Ну, а вообще обращаться к элементам формы из другого класса непосредственно - плохая идея в принципе, элементы не зря скрывают от произвольного доступа, вместо этого надо создать в форме метод с помощью которого текст будет добавляться в ричтекстбокс, и извне обращаться именно через этот метод.

А вообще целая тема закрепленная есть как раз об этом
http://forum.vingrad.ru/forum/topic-52713.html


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
techPro
Дата 22.3.2012, 18:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Я думаю, не стоит обращаться к элементам формы из чужих классов. Это нарушает принципы инкапсуляции. Лучше на форме создать метод, который будет выводить что-то куда-то на форме и к тому же будет проверять данные. По идее контролы формы не должны быть видны за пределами формы.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Разработка Windows Forms | Следующая тема »


 




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


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

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