Предотвращение горизонтальной автопрокрутки в radtreeview с длинными именами узлов - PullRequest
0 голосов
/ 14 октября 2011

У меня есть winform RadTreeView, который имеет длинные имена для узлов и в небольшой области приложения.Когда я нажимаю флажок рядом с именем узла, чтобы проверить его, узел выбирается, и окно прокручивается вправо, что не позволяет установить флажок, и нам нужно прокрутить назад, чтобы проверить узел.Мы можем проверять узлы с длинными именами, если они уже выбраны, но когда вы проверяете узел, который не выбран, он прокручивается.Есть ли способ предотвратить автоматическую прокрутку RadTreeView до конца имени узла?Мы работаем с последней версией, в которой предполагается исправить, но это все еще происходит.Спасибо!

Ответы [ 2 ]

0 голосов
/ 18 октября 2011

Я получил ответ от Telerik по этому поводу, и они сказали, что это известная проблема, которая будет устранена в одном из их будущих выпусков.До этого вы можете обойти это, создав пользовательский RadTreeView и RadTreeViewElement, унаследовав соответствующий элемент управления / элемент и переопределив некоторые методы и свойства.Метод, который предотвращает прокрутку, называется EnsureNodeVisibleHorizontale и является частью элемента древовидного представления.Помимо этого метода вам придется переопределить метод, который создает элемент древовидного представления в RadTreeView, чтобы он возвращал ваш элемент.Два других необходимых переопределения предназначены для механизма тем.

0 голосов
/ 14 октября 2011

Чтобы предотвратить автоматическую прокрутку, вы можете применить следующий стиль к TreeView:

<telerik:RadTreeView runat="server" style="overflow:hidden;" ... />

См. Эту статью для получения дополнительной информации:http://www.telerik.com/support/kb/aspnet-ajax/treeview/controlling-radtreeview-scrollbars-visual-appearance.aspx

РЕДАКТИРОВАТЬ

Для WinForms добавьте следующее к вашему коду:

public Form1() 
{ 
    InitializeComponent(); 

    this.radTreeView1.HScrollBar.VisibleChanged += new EventHandler(HScrollBar_VisibleChanged); 
} 

void HScrollBar_VisibleChanged(object sender, EventArgs e) 
{ 
    this.radTreeView1.HScrollBar.Visible = false; 
} 
...