Skip to main content Skip to footer

HowTo: Manipulate Text Wrap in C1FlexGrid

C1FlexGrid enables cell text wrapping through cell styles. However, there is no direct way to perform customized text wrapping. For instance, suppose we want to perform wrapping after every 10 characters. In this scenario, we need to implement our own wrapping functionality. In this blog let's discuss a simple way of implementing the above scenario. In C1FlexGrid, this can be done using the OwnerDrawCell event. In this implementation, we will use StringBuilder object for the wrapping on e.Text. The complete code will look as follows :


 Private Sub C1FlexGrid1_OwnerDrawCell(ByVal sender As Object, ByVal e As OwnerDrawCellEventArgs) Handles C1FlexGrid1.OwnerDrawCell  
     If e.Col = 1 And e.Row = 1 Then  
         Dim builder = New StringBuilder()  
         Dim lines = e.Text.Split(CChar(vbCrLf))  
         For Each line As String In lines  
             For index As Integer = 0 To line.Length - 1  
                 builder.Append(line(index))  
                 If index Mod 10 = 9 Then  
                     builder.Append(vbCrLf)  
                 End If  
             Next  
         Next  
         Dim brush = New SolidBrush(e.Style.ForeColor)  
         Dim rect = New Rectangle(e.Bounds.Location, New Size(e.Bounds.Width, e.Bounds.Height))  
         e.Graphics.DrawString(builder.ToString(), e.Style.Font, brush, rect)  
         brush.Dispose()  
         e.Handled = True  
     End If  
 End Sub 

Wrap10Characters Wrap10Characters Please refer to the attached samples for detailed implementation of the same. DownloadSample_VB DownloadSample_CS

MESCIUS inc.

comments powered by Disqus