可以超时的不显眼的警报通知

时间:2009-06-09 11:18:44

标签: c# .net user-interface usability

在我正在使用的应用程序中,如果用户更改单元格中的值,该单元格表示肯定为负数且值始终为正值,则应用程序会强制为正值。现在,当发生这种情况时,没有向用户显示警报。

我想展示一些不引人注意的警报,例如当新邮件到达Outlook时出现的警报,或者类似的警告时,可以提醒用户应用程序代表她做某事。

我尝试使用NotifyIcon类来执行此操作。但该类的问题似乎是它的超时不能按预期工作。我希望将此警报显示不超过2秒且BallonTipText持续时间超过10秒。

是否有用于此目的的.NET类? 如果没有,是否有其他方法可以做这样的事情?

2 个答案:

答案 0 :(得分:2)

对于这种情况使用通知图标对我来说似乎不对。当在单元格中输入内容时,用户的注意力是在单元格上。如果您在屏幕右下方显示通知,则用户很可能会错过它,或者更糟糕的是,它会中断他的工作流程。

您可以考虑将气球提示添加到用户正在编辑的单元格中。有点像气球提示Windows资源管理器在Vista和Windows 7上显示当您尝试输入文件名中不允许的字符时重命名文件:

enter image description here

答案 1 :(得分:0)

过去我遇到过这个问题。我认为超时问题是因为操作系统修复了最小值10秒和最大值30秒(或类似的东西)。编辑哦,这不包括时间用户空闲。修改

我过去使用过以下代码来解决这个问题。

只是澄清一下 声明一个公共变量,比如名为ballonTipActive,值为0。

插入一个禁用100ms延迟的定时器控件,并从notifyicon控件中创建一个来自BalloonTipShown的事件。

然后

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取消气球。