2011-02-13 19 views
2

私は、すべてのToolStripMenuItemにToolTipTextを設定したwinforms ContextMenuStripを持っています。メニュー項目のツールチップがサブメニューのドロップダウンリストに隠されています

これらのメニュー項目の1つである「アクションの挿入」には、関連するToolStripDropDownサブメニューがあります。マウスをアクションの挿入に移動すると、ドロップダウンメニューが自動的に表示され、アクションの挿入に関連付けられたツールチップが表示されますが、コンテキストメニューとドロップダウンの両方の背景にプッシュされます。

問題の絵は、ここを参照してください:http://www.screencast.com/t/GZkeBNcU

サブメニューが開かれますが、ツールチップが上に再表示しません後、私はプログラム的に再選択する挿入アクションを試してみました。

アイデア?

また、挿入アクションのサブメニューをクリックしたときに表示する方法があります(マウスを上に移動すると自動的にではなく)。私はこれのための設定があるべきだと思うが、それを見つけることができなかった。

ありがとうございました。

+0

ツールチップを使用して、部品のサンプルコードを追加できますか? – Crimsonland

+0

ToolStripMenuItemに用意されているビルトインのツールチップを使用するので、メニュー項目のToolTipText&AutoToolTip(false)プロパティを設定し、ContextMenuStripのShowItemToolTipsプロパティをtrueに設定する以外のツールチップの特別なコードはありません。 – Governor

+0

この動作が欲しいものですか?私の直感は、各メニュー項目のヘルプ情報の多くを追加するのがちょっと混乱しているように思えます... – Pedery

答えて

1

これはひどく優雅ではないので、私に同行してください。

最初はToolTipTextが上に描画されているように見えますが、次のToolStripMenuItemsが読み込まれると、MenuStripsの両方のセットがToolTipTextの上に表示されます。だから私のモチベーションは、新しいMenuStripのロード後にToolTipTextを強制的に表示することでした。

最初に、「Insert Action ...」という名前のメニュー項目である、DropDownOpenedハンドラをmyToolStripMenuItemに追加しました。

そして、私はこれが何

private void myToolStripMenuItem_DropDownOpened(object sender, EventArgs e) 
{ 
    myToolStripMenuItem.Visible = false; 
    myToolStripMenuItem.Visible = true; 
    myToolStripMenuItem.ToolTipText = "Tooltip info that you want to see!"; 
} 

をロードするサブメニューを待つ次のコードを追加し、(このすべてで醜い一部)myToolStripMenuItemの表示を切り替え、およびリセットToolTipTextは、すべてがロードされた後、さらにすべてのものの上に強制的に表示されます。

ただし、このようにしておくと、マウスを移動して2回以上放置しようとするとテキストが点滅します。それにちょうどこのコードでショットをつけて、あなたが私が何を意味するのか見るでしょう。したがって、ToolTipTextを空の文字列にリセットする必要があります。私は、同じMenuItemのDropDownClosedイベントが発生したときにこれを行いました。

private void myToolStripMenuItem_DropDownClosed(object sender, EventArgs e) 
{ 
    myToolStripMenuItem.ToolTipText = ""; 
} 

今、ToolTipTextは、ちらつきなく表示されたいときに正確に表示されます。

注:このメソッドを使用すると、通常よりも表示に少し時間がかかるToolTipTextになります。これはもちろん、コードがドロップダウンメニューが読み込まれるのを待つためです。また、myToolStripMenuItem.Visibleを切り替えると、メニューにちらつきが生じることがあります。しかし、私はかなり見えないToolTipTextを表示するよりもはるかに優れていると感じています。

関連する問題