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秒(またはそのようなもの)を修正するため、タイムアウトの問題があることを確認します。 を編集してください。これには、ユーザーがアイドルである時間は含まれません。 編集

私は過去にこの問題を回避するために以下のコードを使用しています。

だけ は、パブリック変数を宣言明確にするために、100msの遅延で無効にタイマーコントロールを挿入し、notifyicon制御からBalloonTipShownからイベントを作成する0

の値でballonTipActiveと呼ばれると言います。

次にVisibleプロパティをfalseに設定する

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

確かにこれは一般的な回避策ですが、アイコンはfalse/true設定後に最初のトレイ位置に「ジャンプ」することに注意してください –

関連する問題