1

わかりました、これは奇妙なものです。

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

ツリービューが含まれているものによっては、上記のセマンティックが常に機能するとは限らないため、これを無効にしたいと思います。だから私は自分自身をロールバックし、ツールチップが機能するようにしました(そして、デフォルトのものよりもうまく並んでいます!)-しかし、ネイティブに機能する状況では、「デフォルト」の動作を無効にできるようにしたいと思います。

したがって、その動作を無効にするために TreeView に投稿するメッセージについて、誰かが私を正しい方向に向けることができますか? Windows コントロールのリファレンスを調べましたが、そのように見えるものは見つかりませんでした。

4

2 に答える 2

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;
    }
}
于 2010-04-09T13:20:46.260 に答える
0

申し訳ありませんが、あまり役に立たないことがわかりました... http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=337872

かなり面倒な回避策として、私が持っている唯一の提案は、テキストを常に空に設定してツールチップを抑制し、TreeNode.Tag プロパティを使用して表示するノードの実際のテキストを保存し、それをオーナー描画することです。自分にテキストを送信します。

于 2009-07-29T12:54:39.053 に答える