如何在MSHFlexGrid控件中某个指定的单元格中加入TextBox或者是ComboBox控件?

解决方案 »

  1.   

    '在窗体上放一文本框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
      

  2.   

    '在窗体上放一文本框text1,和一MSHFLEXGRID控件
    Dim adoCnn As New ADODB.Connection
    Dim adoCmm As New ADODB.Command
    Dim Rs As New ADODB.Recordset
    Private Sub Command1_Click()
    Set MSHFlexGrid1.DataSource = Nothing
    MSHFlexGrid1.Clear
    MSHFlexGrid1.ClearStructure
    MSHFlexGrid1.Cols = 2
    MSHFlexGrid1.Rows = 2
    MSHFlexGrid1.Refresh
    'Unload MSHFlexGrid1
    Call Toolbar1_ButtonClick(Toolbar1.Buttons(1))
    End SubPrivate Sub Form_Load()
     
        'Toolbar1.Buttons(1).Image = 1
       Text1.Move -10000, -10000, 1, 1
        adoCnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\Program Files\Microsoft Visual Studio\VB98\NWIND.MDB;Persist Security Info=False"
        Rs.CursorLocation = adUseClient
        Rs.Open "select * from employees", adoCnn, adOpenDynamic, adLockBatchOptimistic
        Set MSHFlexGrid1.DataSource = Rs
    End SubPrivate Sub MSHFlexGrid1_EnterCell()
        MSHFlexGrid1.CellBackColor = vbBlue
        MSHFlexGrid1.CellForeColor = vbWhite
        Text1.Text = MSHFlexGrid1.Text
        Text1.SelStart = 0
        Text1.SelLength = Len(Text1.Text)
    End SubPrivate Sub MSHFlexGrid1_LeaveCell()
        MSHFlexGrid1.CellBackColor = vbWhite
        MSHFlexGrid1.CellForeColor = vbBlue
    End SubPrivate Sub MSHFlexGrid1_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
        Text1.SetFocus
    End SubPrivate Sub Text1_Change()
        MSHFlexGrid1.Text = Text1.Text
    End SubPrivate Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)
        Select Case KeyCode
            Case vbKeyLeft, vbKeyRight, vbKeyUp, vbKeyDown
                KeyCode = 0
        End Select
    End Sub