Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.85/13: Рейтинг темы: голосов - 13, средняя оценка - 4.85
 Аватар для rar
2 / 2 / 0
Регистрация: 04.02.2016
Сообщений: 458

Событие изменения значения

13.04.2019, 10:40. Показов 2754. Ответов 34
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть некий метод для получения значения

C#
1
2
3
4
5
public string GetValue()
{
   ...
   return value
}
Необходимо , чтобы метод GetValue() постоянно мониторил значение, и при его изменении выскакивало MessageBox "значение изменилось"

Как такое реализовать через события?( Event )
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
13.04.2019, 10:40
Ответы с готовыми решениями:

Событие изменения содержимого страницы без изменения адреса и перезагрузки страницы
Доброго времени суток! Такая проблема имеется: есть форма на определенном сайте (сам сайт, к сожалению показать не могу), на которой по...

FileSystemWatcher дублирует событие изменения
Собственно проблема озвучена в названии темы. Не знаю, как это побороть... При изменении файла в каталоге, за которым следит...

Создать событие изменения html элемента в webbrowser
Создать событие изменения html элемента в webbrowser нашел такой код но не знаю как его подстроить под себя HtmlElement div1,...

34
 Аватар для Kazbek17
1485 / 939 / 455
Регистрация: 06.02.2012
Сообщений: 2,870
13.04.2019, 15:09
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Toros1992 Посмотреть сообщение
я сдаюсь. Прям о вас история
Поржал

Добавлено через 3 минуты
Цитата Сообщение от rar Посмотреть сообщение
Необходимо , чтобы метод GetValue() постоянно мониторил значение, и при его изменении выскакивало MessageBox "значение изменилось"
Вам же черным по белому написали Н*я нужен метод GetValue()? Что вы к нему прицепились. акссесоры get И set выполняют свою работу сами. Вам только нужно в это поле ПЕРЕДАТЬ значение и блоке set ПРОИЗОЙДЕТ событие. Вот весь алгоритм монитора. Что тут непонятного вам?

Добавлено через 1 минуту
Пересмотрите свой алгоритм. А то вы сейчас смотрите как бык на красную тряпку.
0
 Аватар для rar
2 / 2 / 0
Регистрация: 04.02.2016
Сообщений: 458
15.04.2019, 12:17  [ТС]
Цитата Сообщение от Kazbek17 Посмотреть сообщение
Вам только нужно в это поле ПЕРЕДАТЬ
Но передать то я могу значение только при первом запуске (GetValue()). как далее это значение передавать постоянно?
0
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
15.04.2019, 12:30
rar, покажите код метода GetValue.
0
 Аватар для rar
2 / 2 / 0
Регистрация: 04.02.2016
Сообщений: 458
15.04.2019, 12:34  [ТС]
C#
1
2
3
4
5
6
public string GetValue()
{
   string value = ReadParam(element);
 
   return value;
}
Добавлено через 2 минуты
ReadParam(element) - это встроенный метод , позволяющий считывать определенную информацию из программы с графическим интерфейсом.
0
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
15.04.2019, 12:35
rar, вот в четвертой строке и делайте уведомление о его изменении.
0
 Аватар для rar
2 / 2 / 0
Регистрация: 04.02.2016
Сообщений: 458
15.04.2019, 12:35  [ТС]
не понял
0
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
15.04.2019, 12:36
Цитата Сообщение от rar Посмотреть сообщение
ReadParam(element) - это встроенный метод , позволяющий считывать определенную информацию из программы с графическим интерфейсом.
Создайте таймер и по таймеру вызывайте этот метод, сравнивая результат с предыдущим считанным значением.
Если они различаются — делайте уведомление через событие.
0
 Аватар для rar
2 / 2 / 0
Регистрация: 04.02.2016
Сообщений: 458
15.04.2019, 12:36  [ТС]
я так с самого начала сделал. но , думал может как то через события можно сделать (что то вроде постоянно запущенного метода и сравнивание значений)
0
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
15.04.2019, 12:37
Лучший ответ Сообщение было отмечено rar как решение

Решение

Цитата Сообщение от rar Посмотреть сообщение
думал может как то через события можно сделать
Да не вопрос: программа с графическим интерфейсом вас как-то сама уведомляет об изменении информации, которую вы считываете?
Если нет, то только таймер.
А из таймера уже можете и свои события запускать для уведомления остальной части программы.
1
 Аватар для rar
2 / 2 / 0
Регистрация: 04.02.2016
Сообщений: 458
15.04.2019, 12:40  [ТС]
Цитата Сообщение от kolorotur Посмотреть сообщение
Да не вопрос: программа с графическим интерфейсом вас как-то сама уведомляет об изменении информации, которую вы считываете?
Да, на самом деле есть такая возможность. Но нужно прописывать кучу мелочей. Поэтому и искал какой то более короткий и универсальный путь.
0
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
15.04.2019, 12:42
Цитата Сообщение от rar Посмотреть сообщение
Но нужно прописывать кучу мелочей.
Ну что ж поделать, иногда в нашей сфере этого не избежать.

Цитата Сообщение от rar Посмотреть сообщение
Поэтому и искал какой то более короткий и универсальный путь.
Нет универсального способа получать уведомления об изменении состояния системы, которая не уведомляет об изменении своего состояния.
1
 Аватар для rar
2 / 2 / 0
Регистрация: 04.02.2016
Сообщений: 458
15.04.2019, 12:43  [ТС]
Цитата Сообщение от kolorotur Посмотреть сообщение
Нет универсального способа получать уведомления об изменении состояния системы, которая не уведомляет об изменении своего состояния.
Хорошо, я понял. Спасибо
0
Эксперт .NET
 Аватар для Usaga
14772 / 9546 / 1365
Регистрация: 21.01.2016
Сообщений: 35,993
15.04.2019, 12:50
Цитата Сообщение от rar Посмотреть сообщение
что то вроде постоянно запущенного метода и сравнивание значений
Что такое "постоянно запущенный метод"?
0
 Аватар для Kazbek17
1485 / 939 / 455
Регистрация: 06.02.2012
Сообщений: 2,870
15.04.2019, 13:01
Цитата Сообщение от rar Посмотреть сообщение
что то вроде постоянно запущенного метода и сравнивание значений
На пальцах
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
static System.Threading.Thread thread;
        private static string text;
        public static string Text
        {
            get
            {
                return text;
            }
 
            set
            {
                text = value;
                Console.WriteLine($"Значение изменилось на {value}");
            }
        }
 
        static void Main (string [] args)
        {
            thread = new System.Threading.Thread(new System.Threading.ThreadStart(Start));
            thread.Start();
        }
 
        public static void Start ()
        {
            while(true)
            {
                var key = Console.ReadKey(true).Key;
                if(key == ConsoleKey.Enter)
                {
                    break;
                }
                else
                {
                    Text = key.ToString();
                }
 
            }
        }
Как только вы нажмете на клавишу. В Консоли будет отображение вашего события.
Больше я уже не знаю как объяснить. Удачи в изучение.
0
 Аватар для rar
2 / 2 / 0
Регистрация: 04.02.2016
Сообщений: 458
15.04.2019, 16:55  [ТС]
Цитата Сообщение от Kazbek17 Посмотреть сообщение
static System.Threading.Thread thread;
* * * * private static string text;
* * * * public static string Text
* * * * {
* * * * * * get
* * * * * * {
* * * * * * * * return text;
* * * * * * }
set
* * * * * * {
* * * * * * * * text = value;
* * * * * * * * Console.WriteLine($"Значение изменилось на {value}");
* * * * * * }
* * * * }

С таймером это работает норм. а как мне организовать работу
C#
1
 public static string Text
со списком ? То есть при определенных условиях будет создаваться новый список (количество значений в нем заранее неизвестно (Text 1, Text 2, Text 3)) и мне нужно сравнивать эти значения до и после ?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
15.04.2019, 16:55

Подписать динамически созданный флажок на событие изменения значения
Здравствуйте уважаемые форумчане. Проблема в следующем, создал checkbox динамически из кода Check31 = new CheckBox(); Check31.Name...

Событие при активации textbox. Или событие при изменения фокуса
Здравствуйте. Подскажите можно ли создать свое событие происходящий вовремя активации textbox. Имеется ввиду создать свой класс...

Событие изменения текста
Добрый день! Написал первую программу на C#, там сказано сделать так, чтобы в случае пустой строки выскакивала ошибка. using System; ...

MediaPlayer: событие изменения прогресса
где в MediaPlayer событие изменения прогресса? или какой еще способ можно придумать чтобы двигать слайдер отвечающий в плеере (пишу плеер)...

Подписаться на событие изменения коллекции
Собственно как? Имеются такие коллекции List<string> scanUrls = new List<string>(); HashSet<string> resUrls = new...


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

Или воспользуйтесь поиском по форуму:
35
Ответ Создать тему
Новые блоги и статьи
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru