2009-07-29 5 views
1

Хорошо, это странно.Sub-class TreeView в WinForms для подсказок подсказок для инструментов

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

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

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

ответ

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; 
    } 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^