al4629740
asked on
locked cells, need to view all contents
I have a MSflexgrid in vb6 and have all cells locked except one using the following code:
My question is it possible to view all the contents of a cell since some cells contain large paragraphs. Is there a way to scroll in a cell?
Private Sub MSFlexGrid1_KeyPress(KeyAscii As Integer)
Dim sTemp As String
With MSFlexGrid1
sTemp = .TextMatrix(.Row, .Col)
If .Col <> 10 Then Exit Sub ' This might need to be 7
Select Case KeyAscii
Case 8 ' backspace
If Len(sTemp) > 0 Then
sTemp = Left$(sTemp, Len(sTemp) - 1)
End If
Case 27 ' escape
sTemp = ""
Case 0 To 31
KeyAscii = 0
Case Else
sTemp = sTemp & Chr$(KeyAscii)
End Select
.TextMatrix(.Row, .Col) = sTemp
End With
MSFlexGridEdit MSFlexGrid1, txtEdit, KeyAscii
End Sub
My question is it possible to view all the contents of a cell since some cells contain large paragraphs. Is there a way to scroll in a cell?
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Also I needed to make this adjustment in the code
Sub MSFlexGridEdit(MSFlexGrid As Control, Edt As Control, KeyAscii As Integer)
' This only happens for the 1st character entered.
' The other characters are typed into txtEdit.
' Changed here
If MSFlexGrid.Col = 10 Then
txtEdit.Locked = False
Else
txtEdit.Locked = True
End If
' Use the character that was typed.
Select Case KeyAscii
' A space means edit the current text.
Case 0 To 32
Edt = MSFlexGrid
Edt.SelStart = 1000
' Anything else means replace the current text.
Case Else
Edt = Chr(KeyAscii)
Edt.SelStart = 1
End Select
' Show Edt at the right place.
Edt.Move MSFlexGrid1.Left + MSFlexGrid.CellLeft, MSFlexGrid.CellTop + MSFlexGrid.Top, _
MSFlexGrid.CellWidth, MSFlexGrid.CellHeight
Edt.Visible = True
' Initially set the text value to whatever is in the cell
If Edt.Text = "" Then
Edt.Text = MSFlexGrid.Text
End If
' And let it work.
Edt.SetFocus
End Sub
ASKER
I have a column that is blue in column 10.
When I make an edit in my colored column, it reverts back to white. How can I keep the color blue?
When I make an edit in my colored column, it reverts back to white. How can I keep the color blue?
Add the top of your form add this.
Option Explicit
Private mlngBackColor As Long
Then in the EnterCell event for you grid putmlngBackColor = TheNameOfYourGrid.CellBackColor
And finally in the LeaveCell code add this line just before the txtEdit.Visible = False line.TheNameOfYourGrid.CellBackColor = mlngBackColor
ASKER
This is what worked
Private Sub MSFlexGrid1_LeaveCell()
'I removed this line below because the whole grid would remain white
'MSFlexGrid1.CellBackColor = vbWhite
If txtEdit.Visible = False Then Exit Sub
MSFlexGrid1 = txtEdit
MSFlexGrid1.CellBackColor = mlngBackColor
txtEdit.Visible = False
End Sub
I placed some long text in the first two rows in column 2.
Scroll-in-cell.zip