Ненавязчивое оповещение, которое может истечь - PullRequest
0 голосов
/ 09 июня 2009

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

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

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

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

Ответы [ 2 ]

2 голосов
/ 09 июня 2009

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

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

enter image description here

0 голосов
/ 09 июня 2009

У меня была эта проблема в прошлом. Я понимаю, что проблема тайм-аута заключается в том, что операционная система фиксирует минимальное значение 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;
   }
}

Если для свойства visible установлено значение false, тогда true удаляет всплывающее окно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...