devxlogo

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

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 columnConst XTRA_ROWS = 15    'including fixed rowPrivate 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 WithEnd SubPrivate 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 WithEnd SelectEnd SubPrivate 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 SelectEnd Sub
devxblackblue

About Our Editorial Process

At DevX, we’re dedicated to tech entrepreneurship. Our team closely follows industry shifts, new products, AI breakthroughs, technology trends, and funding announcements. Articles undergo thorough editing to ensure accuracy and clarity, reflecting DevX’s style and supporting entrepreneurs in the tech sphere.

See our full editorial policy.

About Our Journalist