2009-07-29 9 views
1

これは奇妙なものです。マウスオーバーツールのヒントのためのWinFormsのサブクラス化TreeView

TreeViewコントロールの予想される動作は、ShowNodeToolTipsがfalseに設定されている場合、ツリーノードのラベルがコントロールの幅を超えたとき(正確には右端が右クライアント領域の右端)、ノードの上にフルテキストのテキストを示すツールチップが表示されます。

私はそれを無効にしたいと思います。なぜなら、上記のセマンティックは、ツリービューが何に含まれているかによっては必ずしも機能しないからです。だから私は自分自身をロールバックして、ツールチップが動作するようにしました(そして、デフォルトよりもうまく整列しました!)が、ネイティブで動作する状況では、デフォルトの動作を無効にしたいと考えています。

だから、どのようなメッセージは、その動作を無効にするために、TreeViewに投稿する正しい方向に私を指すことができますか?私はWindowsのコントロール参照を見てきましたが、そのように見えるものは見つかりませんでした。

答えて

0

申し訳ありませんが、あまり助けないこれを見つけた...かなりの痛みを伴う問題を回避するには http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=337872

は、私が持っている唯一の提案は、常に任意のツールチップを抑制するために空にテキストを設定することで、使用表示したいノードの実際のテキストを格納するためのTreeNode.Tagプロパティと、所有者自身がそのテキストを描画します。

1

これを試してみてください:

private const int TVS_NOTOOLTIPS = 0x80; 

protected override System.Windows.Forms.CreateParams CreateParams 
{ 
    get 
    { 
     CreateParams p = base.CreateParams; 
     p.Style = p.Style | TVS_NOTOOLTIPS; 
     return p; 
    } 
} 
関連する問題