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

Изменение параметра Text формы при приёме данных via serialport

04.11.2013, 21:18. Показов 996. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток. Перешёл с плюсов на шарп и не допонял некоторых основ: имеется компонент serialPOrt, и по приёму данных на него вызывается событие, где мы присваиваем форме заголовок в шапке:

C#
1
2
3
4
5
 private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
 {
           Form1 f = new Form1();
           f.Text = "New TEXT!";
  }
заголовок формы не меняется, в чём причина?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
04.11.2013, 21:18
Ответы с готовыми решениями:

Обновление элемента label при приёме данных через serialport
Доброго времени суток! На форме имеются компоненты label и serialport. Через ком порт на комп передаю данные в виде переменной из одной...

SerialPort(COM) Разрыв пакета при приеме
Вся соль в приеме данных... Настроил виртуальный порты - гоняю данные все работает идеально, пробую связать 2 машины - приходит не всЕ...

Изменение формы при выборе определенного параметра
Есть форма надо чтоб поля формы прятались при выборе определенного праметра селект Нашол такой вот скрипт <script language...

4
208 / 164 / 29
Регистрация: 11.09.2013
Сообщений: 445
04.11.2013, 21:40
Ваша f - экземпляр формы, который Вы создали только что (его даже на экране нет). К текущему экземпляру класса (если это форма - то к текущей форме) можно обратиться через this. Например, для Вашего примера:

C#
1
this.Text = "New TEXT!";
1
2 / 2 / 2
Регистрация: 16.10.2011
Сообщений: 179
04.11.2013, 21:59  [ТС]
Ок, а если мне нужно изменить в этом событии (serialPort1_DataReceived) текст компонента label, то я вызываю делегат. Но в функции, на которую ссылается делегат использование выражения типа this.label1.Text="ololo" приводит к ошибке "Cross thread operation ..."

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
        delegate void getchardelegate();
        getchardelegate mydelegate;
 
private void Form1_Load(object sender, EventArgs e)
        {
        mydelegate=new getchardelegate(GetCharFunc);
        }
 
 void GetCharFunc()
         {
             this.label1.Text="ololo";
}
 
private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
 {
           mydelegate.Invoke();
  }
А при использовании конструктора Form1 f=new Form1() значение label1.Text остаётся неизменным. Как быть?
0
208 / 164 / 29
Регистрация: 11.09.2013
Сообщений: 445
04.11.2013, 22:14
инвочить нужно не сам список-делегат, а используя формовский метод (кстати, аналог Вашего делегата - описанный в системе Action). например, вот так:

C#
1
2
3
4
if (this.InvokeRequered)
   this.Invoke(myDelegate);
else
   MyDelegate();
1
 Аватар для Spectral-Owl
608 / 583 / 157
Регистрация: 29.06.2010
Сообщений: 1,620
05.11.2013, 13:59
Цитата Сообщение от mappy89 Посмотреть сообщение
А при использовании конструктора Form1 f=new Form1()...
да чегож вы так норовите новые окна понасоздавать?)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
05.11.2013, 13:59
Помогаю со студенческими работами здесь

Ошибка при приёме данных
На скрине ошибка, из за чего она и как исправить? Делал чат и при отправке сообщения такая ошибка

Зависает при приёме больших данных
не могу разобраться что я делаю с потоком входящих данных не так, при входе большого колличества данных цикл уходит на второй круг и...

Обеспечить помехоустойчивость при приеме-передаче данных
Делаю приемник сигнала. Сообщение (8 разрядов) подаваемое последовательно на вход (один из пинов) микроконтроллера ATTiny2313, должно...

UART проблема при приеме данных. ATmega128A
Добрый день. В программировании микроконтроллеров навичек. Столкнулся со следующей проблемой и залип на несколько дней. В качастве...

ARM11. Потеря данных при приеме UART-ом
Для передачи использую интерфейс UART, проц ARM11. Есть входной FIFO глубиной 32. Ставлю уровень заполнения FIFO и прерывание по этому...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru