Hi all i'm using a ultratreeview with viewstyle = freeform , i need to show large text in a column cell, i want the cell is fixed witdh and autosize height, this is my code but the cell don't size automatically:
UltraTreeColumnSet columnSet = new UltraTreeColumnSet(); UltraTreeNodeColumn info = columnSet.Columns.Add("info"); info.Text = "Descrizione"; info.CellWrapText = Infragistics.Win.DefaultableBoolean.True; info.AutoSizeMode = ColumnAutoSizeMode.VisibleNodes; info.LayoutInfo.PreferredLabelSize = new System.Drawing.Size(80, 20); info.LayoutInfo.PreferredCellSize= new System.Drawing.Size(80, 50); info.DataType=typeof(string); utvScadenze.NodeLevelOverrides[3].ColumnSet=columnSet;
...... Laod Tree.....
Hello,
Could you please try the following two lines in order to achieve the desired behavior:
info.ColumnSet.CellWrapText = Infragistics.Win.DefaultableBoolean.True; info.ColumnSet.ColumnAutoSizeMode = ColumnAutoSizeMode.AllNodes;
Please feel free to let me know if I misunderstood you or if you have any other questions.
Not to hijack this thread but I have a related question. My ViewStyle=Grid, I am performing auto sizing each column on expansion by doing something like this in tree_AfterExpand()
foreach (UltraTreeNodeCell cell in parent.Cells)
{ cell.Column.PerformAutoResize(
Infragistics.Win.UltraWinTree.ColumnAutoSizeMode.VisibleNodes);}
however when the grid shows I see that the tree 'grid' does not occupy the entire width of the hosting control and it does not appear as though each cell expanded wide enough to display the text inside (whilst there's plenty of space left). Is there anything else I should do? Thanks.
Hi,
I'm not sure I follow what you are trying to do with this code. You say this is in the AfterExpand event, but you are looping through the cells of the parent node, which seems odd. It would seem to me to make more sense to autosize the child node columns rather than the parent node - which was already visible before the expansion.
Mike, you are correct, that code did not quite make sense so I modified it to something like this:
That did the trick with auto-sizing so that cell text shows completely. Is there any way to make sure the columns band occupies the entire visible area of the control though (width) - there's still some space between the right edge of the hosting control and the right-most column.
Also, code above auto-sizes child band columns. What is a good place to make sure top band columns are auto-sized once the grid appears? I tried forcing Columnset.Columns to PerformAutoResize within tree_ColumnSetGenerated() handler but no sizing is done.
Thanks.
exelonbsc said:Is there any way to make sure the columns band occupies the entire visible area of the control though (width)
There's an AutoFitColumns property on the ColumnSet.
exelonbsc said:What is a good place to make sure top band columns are auto-sized once the grid appears?
I think if you use the OnAfterDataNodesCollectionPopulated event, you can take care of both the parent and child nodes in one place.
Aha! I forgot about that.
If it would help you for this to work in Grid style, you should Submit a feature request to Infragistics and perhaps this can be implemented in a future release.
Actually, I found this old thread where Brian Fallon (Infragistics) seems to suggest that AutoFitColumn setting has no effect unless the tree style is OulookExpress:
http://blogs.infragistics.com/forums/p/39801/294158.aspx#294158
If you tree nodes are displaying with columns and AutoFitColumns isn't working, then I don't know why that would be.
Can you post a small sample project demonstrating this?
ResizeAllColumns is what its set to, still the same problem...any other solutions? Thanks.
Oops. Sorry about that, it's not on the ColumnSet, it's on the tree's ColumnSettings:
this.ultraTree1.ColumnSettings.AutoFitColumns = Infragistics.Win.UltraWinTree.AutoFitColumns.ResizeAllColumns;