Подклассы TreeView в WinForms для наведения мыши на всплывающие подсказки

Хорошо, это странно.

Ожидаемое поведение для элемента управления TreeView заключается в том, что если ShowNodeToolTips имеет значение false, то, когда метка для узла дерева превышает ширину элемента управления (или, точнее, его правый край выходит за правый край элемента клиентская область), то над узлом отображается всплывающая подсказка с полным текстом элемента.

Я хотел бы отключить это, потому что приведенная выше семантика не всегда работает, в зависимости от того, что содержится в древовидной структуре. Итак, я свернул свой собственный и заставил работать всплывающие подсказки (и выстраиваются лучше, чем по умолчанию!), Но я хотел бы иметь возможность отключить поведение «по умолчанию» для ситуаций, когда оно будет работать изначально.

Итак, может ли кто-нибудь указать мне правильное направление относительно того, какое сообщение опубликовать в TreeView, чтобы отключить это поведение? Я просмотрел ссылку на элементы управления Windows, но не смог найти ничего похожего на то, что это может быть тот самый.


person Community    schedule 29.07.2009    source источник


Ответы (2)


Попробуй это:

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;
    }
}
person arbiter    schedule 09.04.2010

Извините, но нашел это, что не очень помогает... http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=337872

В качестве довольно болезненного обходного пути единственное предложение, которое у меня есть, — всегда устанавливать текст пустым, чтобы подавить любые всплывающие подсказки, использовать свойство TreeNode.Tag для хранения фактического текста узла, который вы хотите отобразить, и рисовать его владельцем. текст себе.

person Community    schedule 29.07.2009