2009-06-09 2 views
0

В приложении, с которым я работаю, если пользователь меняет значение в ячейке, которое считается положительным на отрицательное, и значение должно быть всегда положительным, приложение заставляет положительное значение , Прямо сейчас, когда это происходит, пользователю не отображается предупреждение.Ненавязчивое уведомление о предупреждении, которое может быть тайм-аутом

Я хотел бы показать небольшое ненавязчивое предупреждение, подобное тому, которое появляется, когда новая почта поступает в Outlook или что-то подобное, чтобы пользователь мог быть предупрежден о том, что приложение что-то сделал от ее имени.

Я попытался использовать класс NotifyIcon для этого. Но проблема с этим классом заключается в том, что тайм-аут на нем не работает должным образом. Я хочу показать это предупреждение не более чем на 2 секунды, и BallonTipText длится дольше 10 секунд.

Для этой цели существует класс .NET? Если нет, есть ли альтернативный способ сделать что-то подобное?

ответ

2

Использование значка уведомления для этого случая кажется неправильным для меня. Внимание пользователя при вводе чего-то в ячейку в ячейку. Если вы отобразите уведомление в правом нижнем углу экрана, пользователь, скорее всего, пропустит его или, что еще хуже, нарушит его рабочий поток.

Вы можете вместо этого рассмотреть вопрос о добавлении воздушного шара в ячейку, которую редактирует пользователь. Любопытное как всплывающая подсказка Проводник Windows показывает на Vista, и Windows 7 на переименование файла при попытке ввода символа, запрещенный в именах файлов:

enter image description here

+0

Как бы вы создали этот наконечник баллона? – Svish

+0

Я понятия не имею. Это было просто с точки зрения UX, как вы могли улучшить взаимодействие. Но вам, вероятно, придется пойти по пути P/Invoke для этого. – Joey

+0

Ajax отлично подходит для отзывов пользователей. Для создания подсказок/шаров вы можете протестировать этот плагин: http://jquery.bassistance.de/tooltip/demo/ – Steven

0

Я имел эту проблему в прошлом. Я понимаю, что проблема с таймаутом заключается в том, что операционная система фиксирует минимальное значение 10 секунд и максимальное значение 30 секунд (или что-то в этом роде). Редактировать О, и это не включает время, когда пользователь простаивает. Редактировать

В прошлом я использовал следующий код, чтобы обойти это.

Просто чтобы прояснить Объявить открытую переменную, скажем, под названием ballonTipActive со значением 0.

Включить контроль таймера отключен с 100мс задержкой и создать событие из BalloonTipShown от контроля NotifyIcon.

Тогда

private void ptNotifyIcon_BalloonTipShown(object sender, EventArgs e) 
{ 
    timer1.Enabled = true; 
    balloonTipActive = 0; 
} 

private void timer1_Tick(object sender, EventArgs e) 
{ 

    balloonTipActive++; 

    if (balloonTipActive == 40) 
    { 
    ptNotifyIcon.Visible = false; 
    ptNotifyIcon.Visible = true; 
    balloonTipActive = 0; 
    timer1.Enabled = false; 
    } 
} 

Установка видимого свойства ложно, то верно избавляется от баллона.

+0

Действительно, это, по-видимому, обычное обходное решение, но имейте в виду, что значок будет «прыгать» в первое положение лотка после ложной/истинной настройки –

 Смежные вопросы

  • Нет связанных вопросов^_^