Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.92/13: Рейтинг темы: голосов - 13, средняя оценка - 4.92
0 / 0 / 0
Регистрация: 06.07.2018
Сообщений: 124

Не выводится текст в RichTextBox

06.07.2018, 21:04. Показов 2776. Ответов 27
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вызов функции "read" производится из класса, однако как я понял это неправильно?
Миниатюры
Не выводится текст в RichTextBox   Не выводится текст в RichTextBox  
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
06.07.2018, 21:04
Ответы с готовыми решениями:

При любой смене размера richTextBox-а растянуть текст на весь richTextBox
есть richTextBox нужно вывести текст и при любой смене размера richTextBox растянуть этот текст на весь richTextBox. текст может быть любой...

Как вывести текст из richtextBox при нажатии на button вывести текст в ComboBox
Здравствуйте.Как вывести текст из richtextBox при нажатии на button вывести текст в ComboBox в виде нового элемента?

Как вывести текст из richtextBox при нажатии на button вывести текст в ComboBox
Как вывести текст из richtextBox при нажатии на button вывести текст в ComboBox так, чтобы элементы выводились справа, а не слева?

27
 Аватар для Shogun31337
557 / 534 / 225
Регистрация: 02.11.2016
Сообщений: 1,538
06.07.2018, 22:19
Dima-chan, проблема у Вас в том, что используете метод read не в той форме, которую видите, а создаете еще одну новую. Ну и использование формы в своем классе - признак того, что у Вас неверная архитектура приложения. Такого быть не должно
0
0 / 0 / 0
Регистрация: 06.07.2018
Сообщений: 124
07.07.2018, 07:48  [ТС]
Спасибо
Однако каким образом мне из класса можно вызвать функцию read?
0
 Аватар для Shogun31337
557 / 534 / 225
Регистрация: 02.11.2016
Сообщений: 1,538
07.07.2018, 14:16
Цитата Сообщение от Dima-chan Посмотреть сообщение
Однако каким образом мне из класса можно вызвать функцию read?
Если Вы ничего не собираетесь переделывать, чтобы сделать архитектуру приложения правильной, то можете передать в конструкторе класса ссылку на форму. Тогда Вы будете вызывать read именно из той формы, которая открыта. Однако, повторюсь. Это неправильный подход!!!

Если же делать по уму, то все должно быть наоборот. Т.е. в классе Вы создаете функцию, которая что то там читает и возвращает значение (например, в виде строки). А уже в форме Вы вызываете эту функцию и ее вывод отображаете в текстбоксе
0
0 / 0 / 0
Регистрация: 06.07.2018
Сообщений: 124
07.07.2018, 14:34  [ТС]
Когда данные приходят с микроконтроллера (Ардуино), вызывается событие, которое находится в классе, уже из класса я пытаюсь передать данные на форму
Я сделал так , потому что в классе я предусмотрел два режима приема данных, при помощи события и путем считывания данных в новом потоке (просто читал, что мол приём данных через событие иногда глючит)
C#
1
private static  void DataReceivedHandler(object sender,SerialDataReceivedEventArgs e)
0
 Аватар для Shogun31337
557 / 534 / 225
Регистрация: 02.11.2016
Сообщений: 1,538
07.07.2018, 14:42
Цитата Сообщение от Dima-chan Посмотреть сообщение
при помощи события и путем считывания данных в новом потоке
Так а при чем тут форма?
0
0 / 0 / 0
Регистрация: 06.07.2018
Сообщений: 124
07.07.2018, 14:57  [ТС]
Вывод в текст бокс

Добавлено через 12 минут
то есть как только данные пришли, они сразу должны выводиться на форму
0
 Аватар для Shogun31337
557 / 534 / 225
Регистрация: 02.11.2016
Сообщений: 1,538
07.07.2018, 15:17
Цитата Сообщение от Dima-chan Посмотреть сообщение
Вывод в текст бокс
Ну так и в чем проблема? Вот есть у нас класс, в котором есть метод чтения данных:
C#
1
2
3
4
class c1
{
    public string read(){}
}
Мы вызываем этот метод в форме и вывод сразу же отображаем в текстбоксе:
C#
1
2
3
//Это в коде формы
c1 c = new c1();
textBox.Text = c.read();
0
0 / 0 / 0
Регистрация: 06.07.2018
Сообщений: 124
07.07.2018, 15:42  [ТС]
Данные приходят при помощи обработчика событий
Я не очень понимаю каким образом передать данные на форму.
То есть произошло событие в классе, вызвалась функция, ей передался аргумент (данные с порта)
и как мне сказать форме, что данные пришли, выведи мне их
0
 Аватар для Shogun31337
557 / 534 / 225
Регистрация: 02.11.2016
Сообщений: 1,538
07.07.2018, 16:15
Dima-chan, если при получении данных создается событие, то просто подписываетесь на событие в форме и создаете обработчик этого события, в котором и передаете полученные данные в текстбокс.

Добавлено через 8 минут
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
//В Вашем классе
public delegate void DataReceived(object sender, SerialDaeceivedEvetaRntArgs e);
public event DataReceived OnDataReceived;
 
//В классе формы
Class1 c1 = new Class1();
c1.OnDataReceived += c1_DataReceived;
 
private void c1_DataReceived(object sender, SerialDaeceivedEvetaRntArgs e)
{
    textBox.Text = e.Data; 
//Подразумевается, что SerialDaeceivedEvetaRntArgs есть свойство Data, 
//в которое при возникновении события попадают принятые данные
}
0
0 / 0 / 0
Регистрация: 06.07.2018
Сообщений: 124
07.07.2018, 16:54  [ТС]
Не видит данного аргумента
Миниатюры
Не выводится текст в RichTextBox  
0
0 / 0 / 0
Регистрация: 06.07.2018
Сообщений: 124
07.07.2018, 16:58  [ТС]
я понимаю, что сериал класс надо объявлять до этих функции, однако как?
0
 Аватар для Shogun31337
557 / 534 / 225
Регистрация: 02.11.2016
Сообщений: 1,538
07.07.2018, 16:59
Цитата Сообщение от Dima-chan Посмотреть сообщение
Не видит данного аргумента
Так его там нужно создать. И при создании аргумента SerialDaeceivedEvetaRntArgs записывать в него данные, чтобы потом можно было их получить в обработчике. SerialDaeceivedEvetaRntArgs это же пользовательский класс или откуда Вы его берете?
0
 Аватар для ViterAlex
8952 / 4864 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
07.07.2018, 17:03
Dima-chan, порядок объявления не имеет значения. Тебе нужно самому создать класс SerialDaeceivedEvetaRntArgs со свойством Data
0
 Аватар для Shogun31337
557 / 534 / 225
Регистрация: 02.11.2016
Сообщений: 1,538
07.07.2018, 17:03
Цитата Сообщение от Dima-chan Посмотреть сообщение
я понимаю, что сериал класс надо объявлять до этих функции, однако как?
В смысле, как??? Вы не знаете как создать экземпляр класса или что? Вообще не понял смысла вопроса...
0
0 / 0 / 0
Регистрация: 06.07.2018
Сообщений: 124
07.07.2018, 17:14  [ТС]
Прости меня за мою тупизну
Ибо я раньше сидел на графическом программировании
Миниатюры
Не выводится текст в RichTextBox  
0
 Аватар для Shogun31337
557 / 534 / 225
Регистрация: 02.11.2016
Сообщений: 1,538
07.07.2018, 17:23
Короче, делаете так:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
//Ваш класс:
public class Serial
{
    public delegate void DataReceived(object sender, SerialReceivedEventArgs e);
    public event DataReceived OnDataReceived;
 
    public void read()
    {
         string s = ... //Тут производите чтение в переменную s.
         //Создаете событие и передаете в него аргумент
         OnDataReceived(this, new SerialReceivedEventArgs(){Data=s;});
    }
}
 
//Создаете класс аргумента
public class SerialReceivedEventArgs : EventArgs
{
     public string Data {get;set;}
}
И уже дальше в коде формы:
C#
1
2
3
4
5
6
7
8
9
Serial serial = new Serial();
serial.OnDataReceived += serial_DataReceived;
 
private void serial_DataReceived(object sender, SerialDaeceivedEvetaRntArgs e)
{
    textBox.Text = e.Data; 
//Подразумевается, что SerialDaeceivedEvetaRntArgs есть свойство Data, 
//в которое при возникновении события попадают принятые данные
}
Вот и все!

Добавлено через 8 минут
Dima-chan, Вам нужно перенести код работы с портом в свой класс чтоль?
0
0 / 0 / 0
Регистрация: 06.07.2018
Сообщений: 124
07.07.2018, 17:31  [ТС]
Нет, просто я хочу один раз написать класс (инициализация соединения, отправка данных, приём данных, обработка ошибок и тп) и в дальнейшем использовать его своих программах
0
 Аватар для Shogun31337
557 / 534 / 225
Регистрация: 02.11.2016
Сообщений: 1,538
07.07.2018, 17:40
Цитата Сообщение от Dima-chan Посмотреть сообщение
хочу один раз написать класс (инициализация соединения, отправка данных, приём данных, обработка ошибок и тп)
А разве всего этого нет в стандартном классе SerialPort? Если чего то не хватает, то проще всего создать класс-наследник от SerialPort и дополнить его необходимым. Ну и обработку ошибок нужно делать в основном классе программы, а в пользовательских классах максимум проверять правильность аргументов и выкидывать исключения.
0
0 / 0 / 0
Регистрация: 06.07.2018
Сообщений: 124
07.07.2018, 17:40  [ТС]
Всё как у вас
Миниатюры
Не выводится текст в RichTextBox  
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
07.07.2018, 17:40
Помогаю со студенческими работами здесь

Текст в RichTextbox
Здравствуйте! У меня возник вопрос, можно ли поменять FontStyle кусочка текста из "richtextbox" или "textbox" ? Если...

Текст в RichTextBox
Помогите пожалуйста! Нужно чтобы в RichTextBox текст печатался справа Не могу найти нужное свойство...

Не выводится текст
Здравствуйте, делаю прогу крестики-нолики столкнулся с трудностью, при завершении игры не выводится текст. Клиентская область окна поделена...

выводится текст
Всем привет, выводится текст (начальная позиция, например х = 5), как можно сделать так, чтобы при х = 5, положение х стало равно 20 (х =...

Текст не выводится
<?php echo "<p>ggggg"; ?>Выводит:


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru