2012-01-15 52 views
-3

我不想编辑柔性网格中的某些列。柔性网格不可编辑列

Flex Grid 

column1, column2, .... column35 

我想只从第1列...第10列进行编辑,其余列我不想编辑或键入。

如何在vb6中做。

+0

请给一些更多的信息,例如代码,等等... – cha0site 2012-01-15 08:27:52

回答

0

我做了VB6中一个特殊的用户控件可编辑网格。如果你想我可以给你发一份。

我用,可以编辑一个单元的代码是如下:

Private Sub fg_KeyDown(KeyCode As Integer, Shift As Integer) 
    Dim Cancel As Boolean 
    Dim Idc As Long 
    Dim x 

    If KeyCode = vbKeyEscape And Shift = 0 Then 
     If Not fgLocked Then 
      If fgRowChanged Then 
       RaiseEvent BeforeRestoreBuffer 
       For Idc = 1 To UBound(fgBuffer) 
        x = fgBuffer(Idc) 
        fgValues(Idc, fg.Row) = x 
        If fgColFormat(Idc) = "*" And fgBuffer(Idc) <> "" Then 
         fg.TextMatrix(fg.Row, Idc) = "*******" 
        ElseIf fgColFormat(Idc) = "RTF" Then 
         fg.TextMatrix(fg.Row, Idc) = Format(fgBuffer(Idc), "") 
        Else 
         fg.TextMatrix(fg.Row, Idc) = Format(fgBuffer(Idc), fgColFormat(Idc)) 
        End If 
       Next 
       fgRowChanged = False 
       RaiseEvent RestoreBuffer 
      End If 
     End If 
    ElseIf KeyCode = vbKeyReturn And Shift = 0 Then 
     NextCell 
    ElseIf KeyCode = vbKeyF2 And Shift = 0 Then 
     If Not fgLocked Then 
      If fgColFormat(fg.Col) = "RTF" Then 
       CellEditBig fgValues(fg.Col, fg.Row) 
      Else 
       CellEdit fgValues(fg.Col, fg.Row) 
      End If 
     End If 
    ElseIf KeyCode = vbKeyF2 And Shift = vbShiftMask Then 
     If Not fgLocked Then 
      CellEditBig fgValues(fg.Col, fg.Row) 
     End If 
    ElseIf KeyCode = vbKeyDelete And Shift = 0 Then 
     If Not fgLocked Then 
      RaiseEvent BeforeDelete(Cancel) 
      If Not Cancel Then 
       If fg.Rows = fg.FixedRows + 1 Then 
        fg.AddItem "" 
        If fgRowNumber Then fg.TextMatrix(fg.Rows - 1, 0) = fg.Rows - 1 
        fgValues_AddItem "" 
       End If 
       fg.RemoveItem fg.Row 
       If fgRowNumber Then Renumera 
       fgValues_RemoveItem fg.Row 
       LoadBuffer fg.Row 
       RaiseEvent AfterDelete 
      End If 
     End If 
    ElseIf KeyCode = vbKeyInsert And Shift = 0 Then 
     If Not fgLocked Then 
      RaiseEvent BeforeInsert(Cancel) 
      If Not Cancel Then 
       fg.AddItem "", fg.Row 
       If fgRowNumber Then Renumera 
       fgValues_AddItem "", fg.Row 
       RaiseEvent AfterInsert 
      End If 
     End If 
    Else 
     RaiseEvent KeyDown(KeyCode, Shift) 
    End If 
End Sub