June 2nd, 2000, 10:21 PM
Hi, Can the MSFlexgrid be set to display multi-line data in one row? (Like the text box property)
|
Click to See Complete Forum and Search --> : MSFlexgrid June 2nd, 2000, 10:21 PM Hi, Can the MSFlexgrid be set to display multi-line data in one row? (Like the text box property) lookout July 11th, 2001, 08:25 AM yes,you can but you have set the properties like cell width and height. Iouri July 11th, 2001, 08:59 AM 'This example shows how to do word wrap in msfg With MSFlexGrid1 .WordWrap = True .AllowUserResizing = flexResizeBoth .TextMatrix(0, 0) = "This long entry will be word wrapped." 'if the height is not big enough then end of the line will be truncated .RowHeight(0) = 600 .ColWidth(0) = 800 End With Iouri Boutchkine iouri@hotsheet.com Iouri July 11th, 2001, 09:02 AM Here is another example how to adjust row height for the multiline cell Private Declare Function SendMessage Lib "user32" Alias _ "SendMessageA" _ (ByVal hwnd As Long, _ ByVal wMsg As Long, _ ByVal wParam As Long, _ lParam As Any) As Long Const EM_GETLINECOUNT = &HBA Private Sub Command1_Click() Dim ColLoop As Long Dim RowLoop As Long 'Turn off redrawing to avoid flickering MSFlexGrid1.Redraw = False For ColLoop = 0 To MSFlexGrid1.Cols - 1 MSFlexGrid1.ColWidth(ColLoop) = 2500 For RowLoop = 0 To MSFlexGrid1.Rows - 1 ReSizeCellHeight RowLoop, ColLoop Next RowLoop Next ColLoop 'Turn redrawing back on MSFlexGrid1.Redraw = True End Sub Public Sub ReSizeCellHeight(MyRow As Long, MyCol As Long) Dim LinesOfText As Long Dim HeightOfLine As Long 'Set MSFlexGrid to appropriate Cell MSFlexGrid1.Row = MyRow MSFlexGrid1.Col = MyCol 'Set textbox width to match current width of selected cell Text1.Width = MSFlexGrid1.ColWidth(MyCol) 'Set font info of textbox to match FlexGrid control Text1.Font.Name = MSFlexGrid1.Font.Name Text1.Font.Size = MSFlexGrid1.Font.Size Text1.Font.Bold = MSFlexGrid1.Font.Bold Text1.Font.Italic = MSFlexGrid1.Font.Italic Text1.Font.Strikethrough = MSFlexGrid1.Font.Strikethrough Text1.Font.Underline = MSFlexGrid1.Font.Underline 'Set font info of form to match FlexGrid control Me.Font.Name = MSFlexGrid1.Font.Name Me.Font.Size = MSFlexGrid1.Font.Size Me.Font.Bold = MSFlexGrid1.Font.Bold Me.Font.Italic = MSFlexGrid1.Font.Italic Me.Font.Strikethrough = MSFlexGrid1.Font.Strikethrough Me.Font.Underline = MSFlexGrid1.Font.Underline 'Put the text from the selected cell into the textbox Text1.Text = MSFlexGrid1.Text 'Get the height of the text in the textbox HeightOfLine = Me.TextHeight(Text1.Text) 'Call API to determine how many lines of text are in text box LinesOfText = SendMessage(Text1.hwnd, EM_GETLINECOUNT, 0&, 0&) 'Check to see if row is not tall enough If MSFlexGrid1.RowHeight(MyRow) <= (LinesOfText * HeightOfLine) Then 'Adjust the RowHeight based on the number of lines in textbox MSFlexGrid1.RowHeight(MyRow) = LinesOfText * HeightOfLine End If End Sub Iouri Boutchkine iouri@hotsheet.com codeguru.com
Copyright Internet.com Inc., All Rights Reserved. |