Login | Register   
LinkedIn
Google+
Twitter
RSS Feed
Download our iPhone app
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
Browse DevX
Sign up for e-mail newsletters from DevX


Tip of the Day
Language: VB
Expertise: Beginner
Jun 28, 2005

Limit the Focus of an MSFlexGrid to a Certain Range of Columns and Rows

This code limits the focus in a big MSFlexGrid to a certain range of columns and rows. It limits movement by using the entercell method. It controls the use of enterkey, arrowkey, or mouse clicking with simple, on-cell direct editing:

Const XTRA_COLS = 3     'including fixed column
Const XTRA_ROWS = 15    'including fixed row


Private Sub flxGrdDemo_EnterCell()

    With flxGrdDemo
        If .Col > .Cols - XTRA_COLS Then
            .Col = 1
            If .Row + 1 <= .Rows - XTRA_ROWS Then
                .Row = .Row + 1
            Else
                .Row = 1
                .Col = 1
            End If
        End If
    End With
End Sub

Private Sub FlxGrdDemo_KeyPress(KeyAscii As Integer)
Select Case KeyAscii
    Case vbKeyReturn
        ' When the user hits the return key
        ' this code'll move the next cell or row.
        With flxGrdDemo
            If .Col + 1 <= .Cols - XTRA_COLS Then
                .Col = .Col + 1
            ElseIf .Row + 1 <= .Rows - XTRA_ROWS Then
                .Row = .Row + 1
                .Col = 1
            Else
                .Row = 1
                .Col = 1
            End If
        End With
    Case vbKeyBack
        ' Delete the previous character when the
        ' backspace key is used.
        With flxGrdDemo
            If Trim(.Text) <> "" Then _
                .Text = Mid(.Text, 1, Len(.Text) - 1)
        End With
    Case Is < 32
        ' Avoid unprintable characters.
    Case Else 'Else print everything
        With flxGrdDemo
            .Text = .Text & Chr(KeyAscii)
        End With
End Select
End Sub

Private Sub FlxGrdDemo_KeyUp(KeyCode As _
Integer, Shift As Integer)
Select Case KeyCode
    ' Copy
    Case vbKeyC And Shift = 2 ' Control + C
        Clipboard.Clear
        Clipboard.SetText flxGrdDemo.Text
        KeyCode = 0
        ' Paste
    Case vbKeyV And Shift = 2 'Control + V
        flxGrdDemo.Text = Clipboard.GetText
        KeyCode = 0
        ' Cut
    Case vbKeyX And Shift = 2 'Control + X
        Clipboard.Clear
        Clipboard.SetText flxGrdDemo.Text
        flxGrdDemo.Text = ""
        KeyCode = 0
        ' Delete
    Case vbKeyDelete
        flxGrdDemo.Text = ""
End Select
End Sub
Shuhaimen Ismail
 
Comment and Contribute

 

 

 

 

 


(Maximum characters: 1200). You have 1200 characters left.

 

 

Sitemap