本人涉及到这样一个问题就是在一格中有两个不同信息例如:要显示两个机顶号码(不同的控制状态...)方便操作..想采用combol列表不知可以实现不?最好提供一点代码:Thank you!

解决方案 »

  1.   

    Private Sub MSHFlexGrid1_DblClick()
        If curCol = 1 Then
            Exit Sub
        End If
        If curCol = 3 Then
            With cmbEdit
                .Visible = True
                .Width = MSHFlexGrid1.ColWidth(MSHFlexGrid1.Col)
                .Top = MSHFlexGrid1.CellTop + MSHFlexGrid1.Top - 2 * Screen.TwipsPerPixelY
                .Left = MSHFlexGrid1.CellLeft - 2 * Screen.TwipsPerPixelX
                .Text = MSHFlexGrid1.TextMatrix(MSHFlexGrid1.Row, MSHFlexGrid1.Col)
                .SetFocus
            End With
        Else
            With txtEdit
                .Visible = True
                .Height = MSHFlexGrid1.CellHeight
                .Width = MSHFlexGrid1.ColWidth(MSHFlexGrid1.Col)
                .Top = MSHFlexGrid1.CellTop + MSHFlexGrid1.Top - 2 * Screen.TwipsPerPixelY
                .Left = MSHFlexGrid1.CellLeft - 2 * Screen.TwipsPerPixelX
                If curCol = 4 Then
                    .MaxLength = 5
                Else
                    .MaxLength = 15
                End If
                .Text = MSHFlexGrid1.TextMatrix(MSHFlexGrid1.Row, MSHFlexGrid1.Col)
                .SelStart = 0
                .SelLength = Len(.Text)
                .SetFocus
            End With
        End If
    End SubPrivate Sub MSHFlexGrid1_Click()
        If curRow = MSHFlexGrid1.Row And curCol = MSHFlexGrid1.Col Then
            Call MSHFlexGrid1_DblClick
        Else
            curRow = MSHFlexGrid1.Row
            curCol = MSHFlexGrid1.Col
            txtEdit.Visible = False
            cmbEdit.Visible = False
        End If
    End Sub
      

  2.   

    '在窗体上放一文本框combo1,和一MSHFLEXGRID控件
    Private Sub Combo1_LostFocus()
       ' MSFlexGrid1.Text = Combo1.Text
    End SubPrivate Sub Form_Load()
        Combo1.Visible = False
        Combo1.AddItem "aaa"
        Combo1.AddItem "bbb"
        Combo1.AddItem "ccc"
        
        MSFlexGrid1.Cols = 10
        MSFlexGrid1.Rows = 10
    End SubPrivate Sub MSFlexGrid1_EnterCell()
        MSFlexGrid1.CellBackColor = vbBlue
        MSFlexGrid1.CellForeColor = vbWhite
        Combo1.Move MSFlexGrid1.Left + MSFlexGrid1.CellLeft, MSFlexGrid1.top + MSFlexGrid1.CellTop, MSFlexGrid1.CellWidth
      '  Combo1.Text = MSFlexGrid1.Text
       ' Combo1.SelStart = 0
      '  Combo1.SelLength = Len(Combo1.Text)
    End SubPrivate Sub MSFlexGrid1_LeaveCell()
        MSFlexGrid1.CellBackColor = vbWhite
        MSFlexGrid1.CellForeColor = vbBlue
    End SubPrivate Sub MSFlexGrid1_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
        Combo1.Visible = True
    End SubPrivate Sub Combo1_Change()
        MSFlexGrid1.Text = Combo1.Text
    End Sub
      

  3.   

    MSFlexGrid本生没有这样功能的属性。你可以画一个combobox控件,visible设为false,当在需要的列上操作时,再visible=true,注意在显示前先调整combobox的left和top属性,使它现示在这个单元格中
      

  4.   

    给分:disdishu0807 (5分) 李洪根(25) 全方(20)