WinFormsアプリケーションのすべてのツールチップのタイムアウトを無限大(または非常に大きな値)に設定することを考えています。動機は、私がそれを読んでいる間にツールチップが消えた場合、私が知る限り、追加の値を提供しなくても、ユーザーにとって煩わしいことです。
通常、私はStackOverflowでこのようなことを尋ねることはしませんが、すべてのソフトウェアの圧倒的多数がツールチップにタイムアウトを設定しているので、見逃している重要な考慮事項があるかどうか疑問に思いますか?それとも、これ以上誰も考えない古い慣習なのでしょうか。
無限のタイムアウトを嫌う場合短いタイムアウトとは対照的に、理由を説明してください。
(ツールチップがまったく悪いアイデアだと思っているだけなら、それは別の考慮事項です。この質問は特に無限タイムアウトに関するものです。)
Microsoft Tooltips and Infotips Guidelines は、可能な最大値を使用することを明示的に示唆しています。
ヒントについては、チップの取り外しのタイムアウトをオフにします。開発者:削除のタイムアウトを技術的にオフにすることはできないため、最大値に設定します。
Windowsエクスプローラーでこれを行うと、画像情報のヒントが表示されます(つまり、32秒後に消えます)。
また、HTMLの<acronym>
タグのタイトル属性には、無限のタイムアウトがあります。これらは、Windowsの情報ヒントの32を超えています。
ヘアを分割する-しかし、実際にはツールチップではなく infotips を作成します。
tooltipは、ラベルのないツールバーコントロールやコマンドボタンなど、ポイントされているラベルのないコントロールにラベルを付ける小さなポップアップウィンドウです。
ツールチップは非常に有用であることが判明したため、関連情報のコントロールと呼ばれるコントロールが存在します。これにより、ツールチップで可能なものよりも説明的なテキストが提供されます。
infotipは、ツールバーコントロール、アイコン、グラフィックス、リンク、Windows®Explorerオブジェクト、スタートメニューの説明など、ポイントされているオブジェクトを簡潔に説明する小さなポップアップウィンドウです。アイテム、タスクバーボタン。
私は無期限のタイムアウトで行きます。これらは本当に短いもので、NICの[接続方法]の値にカーソルを合わせると、MACアドレスが使い果たされる前に常にタイムアウトし、問題が発生します。ただし、ツールチップの使用はできるだけ避けます。特に、MACアドレスの例などの追加情報を表示するために使用される場合。それらを使用して、新しいデータを表示するのではなく、新しいユーザーにとっての意味を説明します。
無限のタイムアウトを使用する場合は、1)非アクティブなスペースを十分に確保してください。2)それらがonMouseOutで適切に期限切れになるようにしてください。ツールチップよりもいらいらするのは、期限切れが早すぎるため読むことができないのは、重要な情報を覆い隠して離れたくないツールチップだからです。
有効期限のないツールチップの最も露骨な乱用は、初期のEnlightenmentデスクトップマネージャーだったと思います。すべてのデスクトップ要素は有効期限のないツールチップを提供し、デスクトップ自体も同様に機能し、ツールチップをオフにする方法を除いて、デスクトップで実行できるすべてのことに関する包括的なヘルプを含む、画面の高さ半分と幅の広いツールチップを生成しました。
Win32 ToolTip API(これは.NET ToolTipクラスが行うことです)を使用することに注意してください Win32で無限タイムアウトを設定することはできません (最大は〜32秒です)。実際には、MSDNは 5秒を超える遅延を設定することはできません と述べていますが、奇妙なことに、30秒で十分です。何らかの理由でそれがうまくいかない場合は、 回避策 があります。ほとんどのツールチップでは32秒で十分だと思います。そうでない場合は、自分でロールする必要があります(アイデアについては here および here を参照してください)。最後に、おそらく 再発する問題 に対処する必要があります。詳細については、CodeProjectの記事 here および here を参照してください。
幸運を !
無限のツールチップは、非常に長いツールチップに非常に役立つと思います。 Handbrake(ビデオトランスコーディングソフトウェア)の典型的なツールチップを見てください。
Ohadscによって指摘された技術的な制限により、ツールチップは5秒で消えます。気に障る。このすべて、特にこのオタクなものは5秒で把握できません。それにもかかわらず、これらの長いツールチップは、Handbrakeの高度な使用法に移行するのに役立ちました。個別のヘルプドキュメント間を行き来するよりもはるかに優れています。
ツールチップの詳細度に関係なく、X秒後にツールチップが消える理由はわかりません。誰もがX秒で読み終えることを期待することはできません。ツールチップを消したい場合は、マウスを数ピクセル上に移動します。これは簡単です。
そもそもツールチップは嫌いです-私はそれらをさらに嫌い、それらを読んでいる間に消えます。
それが邪魔にならない限り、私は無限のタイムアウトのために行くと言います。
しかし、全体として、ツールチップはよくないアイデアだと私は思います、そしてそれは「それが私たちがいつもそれをしてきた方法だから」と引きずり込まれたばかりです。問題は、機能に的を絞った簡潔なオンデマンドのヘルプを提供するという問題を解決する、直感的な代替手段を見つけることです。
タイムアウトしてもメリットはありません。ツールチップはWindows 95より前に散発的に使用されていましたが、Windows 95はツールチップを使いすぎて、どこでも一貫してタイムアウトしていました。私は、誰もがそれをきちんと考えずにただ大会をコピーしただけだと思います。
ツールチップは何を隠すことができますか?何も塞がない場合は、タイムアウトを無限に設定しても問題ありません。繰り返しになりますが、そのようなスペースを空けておく場合は、ツールチップ以外の何か、たとえば、より長い説明ラベルなどを使用する必要があります。
タイムアウトの目的は、ユーザーが表示する必要があるものの邪魔にならないようにツールチップ(ユーザーが必ずしも望んでいなかった)を回避することです。ユーザーがツールバーコントロールにカーソルを合わせて、コマンドがドキュメント内の選択されたアイテムに適切かどうかを判断しようとしている場合、ツールチップが表示され、選択するために検討していた選択アイテムの主要な部分が非表示になります。タイムアウトにより、この問題は自動的に解決されます。これも、ツールチップに遅延が発生する理由の1つです。
ツールチップのテキストが長すぎて短いタイムアウトで読むことができない場合、一種の岩と固い場所の間に行き詰まっています。タイムアウトを短いままにしておくと、ユーザーがまだタイムアウトを読んでいる間にツールチップが消える可能性があり、ポインターを移動してホットスポットを再取得する(そして遅延を待つ)必要があり、面倒です。タイムアウトを増やすことはできますが、これは他のものが遮られる時間を長くすることを意味します(テキストが長いため、関心のあるものを遮る可能性が高くなります)。ユーザーにポインタを移動させて内容を表示させ、次におそらくポインタを戻してコマンドを選択しますが、これも面倒です。前者はおそらく後者よりも迷惑ですが、ウィンドウの密度に応じて、後者はおそらく前者よりも頻繁です。ツールチップは補足的な重要でない情報にのみ使用する必要があります。つまり、定義上、ユーザーはほとんど必要ありません。それらを読むために。
テキストが長い場合、ツールチップを使用するべきではないかもしれませんが、代替手段は何ですか?ステータスバーは見ている可能性が高い場所から離れているため、ユーザーがステータスバーに気づくことはほとんどないため、ステータスバーの使用はお勧めできません。ツールチップを必要とするコントロールのすぐ下に空のスペースを置き、遅延やタイムアウトなしにフルタイムで動的にテキストを表示することができますが、ユーザーがあまり必要としないものにそれほど多くの領域を使用したくない場合もあります。
おそらく、解決策はタイムアウトが無限の透明なツールチップであるか、タイムアウト後にツールチップが透明になり、最初は最適な読みやすさを提供します。透明性が一度ユーザビリティを改善するならクール。
必要なのは、ツールチップを取り除くためのより良い方法を提供することです。
理想的には、ツールチップの右上隅にある小さな「十字」は、これを閉じることができることを示します。 (Win32ツールチップAPIでこれを追加するのがどれほど簡単かはわかりません)。
さらに、それを取り除くための他の試みがうまくいくか、少なくとも私が仕事を失うようにしないようにしてください。ユーザーは
代替案:
タイムアウトをテキストの長さに依存させる
現在フォーカスされているアイテムのツールチップに独自のスペースを与えます。 @JoJoは、ツールチップがbadである優れた例を投稿します。テキストが多く、画面のランダムな領域を覆っています。
おそらく、独自のツールチップをロールバックする必要があります。とは言っても、ボタンの機能に関するヒントを表示するために、ステータスバーのような領域を使用する人を見てきました。 Image-LineはFL Studioでこれを実行します。ヒントは非常に役に立ちました。マウスを動かさなくても変化しないし、何かを覆ったり、混乱を招いたりしないでください。
これは、特に独自のツールチップを作成するのが面倒な場合は、検討する必要があるかもしれません。