![]() |
Модераторы: gambit, Partizan |
![]() ![]() ![]() |
|
caliphornia |
|
|||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 8.10.2009 Репутация: нет Всего: нет |
Здравствуйте.
Как обратиться к элементу формы из своего собственно класса? Есть необходимость заполнять компонент richTextBox на форме из класса. класс по обработке данных: public ref class myClass { public: static void myProc() { //обработка richTextBox1->Lines->Add("что то");//выдает ошибки ????? } } Среде - Visual Studio 2010, Язык - С++, Тип проекта - Windows Form Aplication или может я не правильно обратился к элементу или описал класс? |
|||
|
||||
borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: нет Всего: 135 |
![]() В смысле это - не Си++, а Си.Net (CLR или как там его... нечто среднее между Си++ и Си#) Думаю проблема в том, что ф-ция myProc static. В Си++ (не знаю как в дотНете) к нестатическим членам класса (а судя по всему, richTextBox1 таковым является) нельзя обращаться из static-функций -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
caliphornia |
|
|||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 8.10.2009 Репутация: нет Всего: нет |
тем не менее что вы предложите по решению проблемы?
|
|||
|
||||
vponomarov |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 407 Регистрация: 11.8.2007 Где: Киев Репутация: 5 Всего: 12 |
передавайте richTextBox, который нужно изменить как аргумент в функцию myProc. |
|||
|
||||
diadiavova |
|
|||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 16 Всего: 142 |
Не знаю как в проектах с++, но в шарпе к примеру для всех элементов управления, добавленных в дизайнере создаются приватные поля и из другого класса они естественно не видны. Кроме того, свойство Lines ричтекстбокса представляет из себя массив строк, а у массива просто нет метода Add. Добавлять текст в ричтекстбокс можно с помощью метода AppendText. Ну, а вообще обращаться к элементам формы из другого класса непосредственно - плохая идея в принципе, элементы не зря скрывают от произвольного доступа, вместо этого надо создать в форме метод с помощью которого текст будет добавляться в ричтекстбокс, и извне обращаться именно через этот метод. А вообще целая тема закрепленная есть как раз об этом http://forum.vingrad.ru/forum/topic-52713.html -------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит ![]() |
|||
|
||||
techPro |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 16.3.2012 Репутация: нет Всего: 1 |
Я думаю, не стоит обращаться к элементам формы из чужих классов. Это нарушает принципы инкапсуляции. Лучше на форме создать метод, который будет выводить что-то куда-то на форме и к тому же будет проверять данные. По идее контролы формы не должны быть видны за пределами формы.
|
|||
|
||||
![]() ![]() ![]() |
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Разработка Windows Forms | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |