Centering a node vertically
Hi there,
I'm currently using Syncfusion version 3.3.0.0. In particular, I have a TreeViewAdv that contains so many nodes that the vertical scrollbar is visible. I'm wondering whether it is possible to bring a node into view as close to the vertical center as possible. To my understanding, there is a BringIntoView method but it will only scroll the tree vertically just enough to bring the node into view. In most cases, the node ends up at the top most or bottom most. Please advise.
Regards,
Hardi
I'm currently using Syncfusion version 3.3.0.0. In particular, I have a TreeViewAdv that contains so many nodes that the vertical scrollbar is visible. I'm wondering whether it is possible to bring a node into view as close to the vertical center as possible. To my understanding, there is a BringIntoView method but it will only scroll the tree vertically just enough to bring the node into view. In most cases, the node ends up at the top most or bottom most. Please advise.
Regards,
Hardi
SIGN IN To post a reply.
6 Replies
MA
Malarvizhi
Syncfusion Team
November 3, 2006 10:03 AM UTC
Hi Hardi,
We regret for the inconvenience caused.
This is a known issue and we are currently fixing this.Could you please try the following workaround to overcome this issue?
I have attached the video file, please go through that and let me know if i understood you correctly.
TreeViewAdvDemo.zip
Regards,
Malarvizhi.
We regret for the inconvenience caused.
This is a known issue and we are currently fixing this.Could you please try the following workaround to overcome this issue?
TreeNodeAdv node = new TreeNodeAdv();
//Code to set the VScroll position.
this.treeViewAdv1.VScrollPos = this.treeViewAdv1.VScrollBar.SmallChange + this.treeViewAdv1.VScrollBar.LargeChange ;
// TreeviewAdv to focus the particular node
node = this.treeViewAdv1.Nodes[15];
this.treeViewAdv1.SelectedNode = this.treeViewAdv1.LastVisibleNode;
this.treeViewAdv1.SelectedNode = node;
this.treeViewAdv1.EnsureVisibleSelectedNode = true;
this.treeViewAdv1.Focus();
I have attached the video file, please go through that and let me know if i understood you correctly.
TreeViewAdvDemo.zip
Regards,
Malarvizhi.
HJ
Hardiyanto Johandoko
November 7, 2006 06:09 AM UTC
Hi Malarvizhi,
Please see the attached code. It was taken from one of the Syncfusion's samples. I modified the application such that the tree lists the folders in "c:\Program Files\" and when the button "Center" is clicked, it will bring the 22nd node into view. Please note that When you click button "Center", it still doesn't center the 22nd node and it seems that it behaves just like the BringIntoView method. Please advise, am I missing something here?
Regards,
Hardi
Center.zip
Please see the attached code. It was taken from one of the Syncfusion's samples. I modified the application such that the tree lists the folders in "c:\Program Files\" and when the button "Center" is clicked, it will bring the 22nd node into view. Please note that When you click button "Center", it still doesn't center the 22nd node and it seems that it behaves just like the BringIntoView method. Please advise, am I missing something here?
Regards,
Hardi
Center.zip
MA
Malarvizhi
Syncfusion Team
November 7, 2006 09:45 AM UTC
Hi Hardi,
Thanks for your sample.
I was able to reproduce the issue. I have attached the modified sample,please go through that and let me know your issue has been resolved or not.
Regards,
Malarvizhi.
Thanks for your sample.
I was able to reproduce the issue. I have attached the modified sample,please go through that and let me know your issue has been resolved or not.
Center.zip
Regards,
Malarvizhi.
HJ
Hardiyanto Johandoko
November 9, 2006 02:31 AM UTC
Hi Malarvizhi,
First, the workaround works perfectly for node 22, but it doesn't work anymore if you put a higher node number like 40.
Second, this approach seems to work only when the tree is flat (all nodes are collapsed). In the application that I'm currently working on, we have a tree which each node can have different depth. Try the following, expand few nodes above node 22 and click on the button. Notice that the node is not centered anymore.
Regards,
Hardi
First, the workaround works perfectly for node 22, but it doesn't work anymore if you put a higher node number like 40.
Second, this approach seems to work only when the tree is flat (all nodes are collapsed). In the application that I'm currently working on, we have a tree which each node can have different depth. Try the following, expand few nodes above node 22 and click on the button. Notice that the node is not centered anymore.
Regards,
Hardi
MA
Malarvizhi
Syncfusion Team
November 9, 2006 11:04 AM UTC
Hi Hardi.
We regret for the inconvenience caused.
To view at node at center position(include Expand/collaspe operation),i used to set TreeviewAdv.VScrollPos by the following values.
TreeviewAdv.ItemHeight :Indicated the default height of the nodes.
TextBox1.Text - position of the node to be viewed
TreeviewAdv.VScrollBar.SmallChange-Indicates the value of the scrollbox moved a small distance
TreeviewAdv.VScrollBar.LargeChange-Indicates the value of the scrollbox moved a large distance.
I attached the sample.please go through that and let me know its works for you.
Regards,
Malarvizhi.
We regret for the inconvenience caused.
To view at node at center position(include Expand/collaspe operation),i used to set TreeviewAdv.VScrollPos by the following values.
//TextBox value is node to be viewed.
this.treeViewAdv1.VScrollPos = (this.treeViewAdv1.ItemHeight * int.Parse(this.textBox1.Text) / (this.treeViewAdv1.VScrollBar.SmallChange+this.treeViewAdv1.VScrollBar.LargeChange));
TreeviewAdv.ItemHeight :Indicated the default height of the nodes.
TextBox1.Text - position of the node to be viewed
TreeviewAdv.VScrollBar.SmallChange-Indicates the value of the scrollbox moved a small distance
TreeviewAdv.VScrollBar.LargeChange-Indicates the value of the scrollbox moved a large distance.
I attached the sample.please go through that and let me know its works for you.
TreeViewCenterNode.zip
Regards,
Malarvizhi.
HJ
Hardiyanto Johandoko
November 10, 2006 08:45 AM UTC
Hi Malarvizhi
I'm really sorry but your solution only works for certain nodes. But your approach made me realize that the problem can be solved by simple math. Thank you for your help.
Attached is your modified code.
Regards,
Hardi
TreeViewCenterNode.zip
I'm really sorry but your solution only works for certain nodes. But your approach made me realize that the problem can be solved by simple math. Thank you for your help.
Attached is your modified code.
Regards,
Hardi
TreeViewCenterNode.zip
SIGN IN To post a reply.
- 6 Replies
- 2 Participants
-
HJ Hardiyanto Johandoko
- Nov 3, 2006 06:48 AM UTC
- Nov 10, 2006 08:45 AM UTC