2015-09-03 5 views
0

Можно ли добавить интерактивную гиперссылку в подсказку сетки?PropertyGrid Подсказка с гиперссылкой?

У меня есть следующие в моем классе (который присваивается сетке свойств, как SelectedObject):

[Browsable(true), 
ReadOnly(false), 
Category("7. InnoDB"), 
DefaultValue(1), 
Description("Defines what happens after InnoDB transaction commit, for more details view https://mariadb.com/kb/en/mariadb/xtradbinnodb-server-system-variables/#innodb_flush_log_at_trx_commit")] 
public int innodb_flush_log_at_trx_commit { get; set; } = 1; 

При просмотре в сетке свойств, ссылка не кликабельна. Есть идеи?

ответ

1

Глядя на ссылке MSDN, то PropertyGrid использует два Label с, один для заголовка и один для описания:

http://referencesource.microsoft.com/#System.Windows.Forms/winforms/Managed/System/WinForms/PropertyGridInternal/DocComment.cs,a0b78590be82b950

Label не поддерживает гиперссылки. Что вы можете сделать, это поместить RichTextBox над меткой описания и отобразить текст вместо этого. Например.

PropertyGrid pg = new PropertyGrid() { Dock = DockStyle.Fill }; 
    Control c = pg.Controls[0]; // internal DocComment control 
    Label l1 = (Label) c.Controls[1]; 
    RichTextBox tb = new RichTextBox { Multiline = true, WordWrap = true, ReadOnly = true, BorderStyle = BorderStyle.None }; 
    c.Controls.Add(tb); 
    c.Controls.SetChildIndex(tb, 0); 
    l1.TextChanged += delegate { 
     tb.Text = l1.Text; 
    }; 
    l1.SizeChanged += delegate { 
     tb.Size = l1.Size; 
    }; 
    l1.LocationChanged += delegate { 
     tb.Location = l1.Location; 
    }; 
+0

Действительно хорошая идея :) Я дам это позже. Спасибо +1 – Latheesan

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