Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
85 / 77 / 13
Регистрация: 03.09.2009
Сообщений: 346

ToolTip тормозит обработку событий формы

10.09.2011, 12:25. Показов 1785. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В общем при событии MouseMove над определенным контроллом вывожу ToolTip

C#
1
2
3
4
5
6
System.Windows.Forms.ToolTip ttip = new ToolTip();
 
private void myControl_MouseMove(object sender, MouseEventArgs e)
{
ttip.Show(Text, myControl, e.X+20, e.Y+5, 1000);
}
Проблема - пока на экране виден этот тултип останавливается вся обработка событий формы: не работают ни таймер, ни все остальное.
Можно ли както отображать тултип асинхронно, чтоли?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
10.09.2011, 12:25
Ответы с готовыми решениями:

Как на время запретить обработку событий от элемента формы
Уважаемые gurus! На форме дерево с checkboxs. Задача: при изменении состояния checkbox узла - программно установить в это же...

Запустить обработку событий как только пользователь нажал Enter
На форме есть много контролов, как отловить тот момент когда пользователь нажал Enter в любом из контролов? Можно конечно обрабатывать...

Вывод ToolTip в QPaint тормозит
Здравствуйте. Сам вызов QEvent::ToolTip срабатывает в зависимости от фаз луны. В конструкторе setMouseTracking(true); не оказывает...

7
Level 2
 Аватар для FakiR
401 / 275 / 48
Регистрация: 22.11.2010
Сообщений: 785
Записей в блоге: 1
10.09.2011, 13:34
C#
1
new Thread(Method).Start();
0
85 / 77 / 13
Регистрация: 03.09.2009
Сообщений: 346
10.09.2011, 21:03  [ТС]
Разобрался, тут дело в другом было: дело в том, что тултип выводился в обработчике события MouseMove.
Почему-то происходит так, что после отображения тултипа опять инициируется событие MouseMove, хотя мыша стоит на месте. Соответственно обработчик MouseMove опять выводит тултип, появление которого опять приводит к событию MouseMove... В итоге программа зацикливается, пока не уведешь мышу за пределы контролла.
Хорошо, что был запущен ProcessExplorer, который показал странную загрузку процессора на 100%
0
 Аватар для nio
6050 / 3460 / 336
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
10.09.2011, 22:54
SergBokh, а почему не используешь стандартный ToolTip? С ним таких проблем нет
0
85 / 77 / 13
Регистрация: 03.09.2009
Сообщений: 346
11.09.2011, 00:32  [ТС]
Пользователь водит мышей по PictureBox с графиком, а я с пом. тултипа вывожу некоторую инфу, соответствующую положению мыши.
0
Заблокирован
11.09.2011, 01:04
SergBokh, в потоке тоже гребет неплохо.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
       ToolTip ttip;
        public Form1()
        {
            InitializeComponent();
 
            ttip = new ToolTip();
 
              new System.Threading.Thread(() =>
                {
                    pictureBox1.MouseMove += (sender, e) => ttip.Show(e.X.ToString() + 
                        " " + e.Y.ToString(), pictureBox1, e.X + 20, e.Y + 5, 1000);
                }).Start();
                
        }
0
 Аватар для nio
6050 / 3460 / 336
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
11.09.2011, 08:44
Цитата Сообщение от SergBokh Посмотреть сообщение
Пользователь водит мышей по PictureBox с графиком, а я с пом. тултипа вывожу некоторую инфу, соответствующую положению мыши.
В таком случае сделай задержку отображения (на таймере): если координата не меняется в течении секунды, то выводится подсказка; нет смысла отображать пользователю инфу, которая ему не интересна.
0
85 / 77 / 13
Регистрация: 03.09.2009
Сообщений: 346
11.09.2011, 17:30  [ТС]
Проблема несколько в другом была.
Смотрите пример кода Fredi, и мое сообщение:
Почему-то происходит так, что после отображения тултипа опять инициируется событие MouseMove, хотя мыша стоит на месте. Соответственно обработчик MouseMove опять выводит тултип, появление которого опять приводит к событию MouseMove... В итоге программа зацикливается, пока не уведешь мышу за пределы контролла.
Вот именно это странное поведение и ввело меня в заблуждение. То есть я не подозревал, что там происходит зацикливание. А когда случайно обнаружил, что процессор грузится на 100% тогда и докопался, что к чему. Естественно проблема зацикливания решилась проверкой предыдущих координат вывода тултипа.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
11.09.2011, 17:30
Помогаю со студенческими работами здесь

Попытка создать обработку событий
Попытался создать что-то наподобии сигналов и слотов. Вот мой файл Event.h #ifndef ELEM_H #define ELEM_H #include...

Как на время отключить обработку событий кнопок?
На форме есть две кнопки Btn1 и Btn2. При клике по Btn1 производятся достаточно длительные расчеты. На время этих расчетов мне надо...

Как сделать обработку событий при клике на ячейку таблицы
Есть таблица, в ячейках некий текст. Как сделать ячейки таблицы кликабельными? И как проверять содержимое ячеек. Например при клике по...

Данные не передаются из формы в обработку!
Здраствуйте! У меня такая проблема: Почему-то данные с формы не передаются на обработку... Именно не передаются... Если я...

Помогите сделать обработку данных из формы
Здравствуйте! В Java я, честно говоря, полный 0 (ноль). Может, найдется добрый человек, который подскажет как сделать обработчик формы....


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru