VB中有没有这么一个控件:
有点类似于Grid,是一个表格样式的。比如:
现在窗口启动以后,窗体中这个Grid显示,标题栏上分别是学号、姓名、年龄...(比如就这3个标题吧)。然后窗体中就只有这三个标题的表格,类似于一个空表。
然后,我点击“新增”按钮,然后再这三个标题下面弹出来类似于TextBox的空白可以输入内容在里面,然后点击“保存”就把它们存到相应表格里面了。应该很清楚了吧?

解决方案 »

  1.   

    ms datagrid + 内存表
      
    ————————————————————————————————————
    写作,虽然每个人都会查阅辞海,可,不是人人都能写出不朽的篇章的。编程,如是也。
      

  2.   

    直接使用DATAGRID控件,并在窗体上添加3个文本框,将3个文本框设置于DATAGRID控件后,添加2个按钮,在窗体LOAD事件中连接数据库及表,将Adodc1的属性ConnectionString和RecordSource按你数据库及表设置好:
    Private Sub Form_Load()
    Adodc1.ConnectionString = "DSN=hxkcgl"
    Adodc1.RecordSource = mdh
    End Sub
    Private Sub cmdAddnew_Click()
        Adodc1.Recordset.AddNew
        DataGrid1.Visible = False
        Text1.SetFocus
        cmdSave.Enabled = True
    End SubPrivate Sub Text1_KeyPress(KeyAscii As Integer)
        If KeyAscii = 13 Then
            Text2.SetFocus
        End If
    End SubPrivate Sub Text2_KeyPress(KeyAscii As Integer)
        If KeyAscii = 13 Then
            Text3.SetFocus
        End If
    End SubPrivate Sub Text3_KeyPress(KeyAscii As Integer)
        If KeyAscii = 13 Then
            Adodc1.Recordset.Update
            DataGrid1.Visible = True
        End If
    End Sub
      

  3.   

    发一个示例!
    Private Sub MSFlexGrid1_Click()
      If MSFlexGrid1.Col <= 5 And MSFlexGrid1.Row <= 12 Then
         Text1.Left = MSFlexGrid1.Left + MSFlexGrid1.ColPos(MSFlexGrid1.Col)
         Text1.Top = MSFlexGrid1.Top + MSFlexGrid1.RowPos(MSFlexGrid1.Row)
         Text1.Width = MSFlexGrid1.ColWidth(MSFlexGrid1.Col)
         Text1.Height = MSFlexGrid1.RowHeight(MSFlexGrid1.Row)
         Text1 = MSFlexGrid1.Text
         Text1.Visible = True
         Text1.SetFocus
       End If
    End Sub
    Private Sub MSFlexGrid1_KeyPress(KeyAscii As Integer)
      If KeyAscii = vbKeyReturn Then
         If MSFlexGrid1.Col <= 5 And MSFlexGrid1.Row <= 12 Then
            Text1.Left = MSFlexGrid1.Left + MSFlexGrid1.ColPos(MSFlexGrid1.Col)
            Text1.Top = MSFlexGrid1.Top + MSFlexGrid1.RowPos(MSFlexGrid1.Row)
            Text1.Width = MSFlexGrid1.ColWidth(MSFlexGrid1.Col)
            Text1.Height = MSFlexGrid1.RowHeight(MSFlexGrid1.Row)
            Text1 = MSFlexGrid1.Text
            Text1.Visible = True
            Text1.SetFocus
         End If
      End If
    End Sub
    Private Sub Text1_KeyPress(KeyAscii As Integer)
      If KeyAscii = vbKeyEscape Then
         Text1.Visible = False
         MSFlexGrid1.SetFocus
         Exit Sub
      End If
      If KeyAscii = vbKeyReturn Then
         MSFlexGrid1.Text = Text1.Text
         If MSFlexGrid1.Col < 5 Then
            MSFlexGrid1.Col = MSFlexGrid1.Col + 1
         Else
           MSFlexGrid1.Row = MSFlexGrid1.Row + 1
           MSFlexGrid1.Col = 1
         End If
         Text1.Left = MSFlexGrid1.Left + MSFlexGrid1.ColPos(MSFlexGrid1.Col)
         Text1.Top = MSFlexGrid1.Top + MSFlexGrid1.RowPos(MSFlexGrid1.Row)
         Text1.Width = MSFlexGrid1.ColWidth(MSFlexGrid1.Col)
         Text1.Height = MSFlexGrid1.RowHeight(MSFlexGrid1.Row)
         Text1 = MSFlexGrid1.Text
         Text1.SetFocus
      End If
    End Sub
      

  4.   

    可用代码解决动态增加DataGrid列数 
    Dim i As Integer 
    Dim c As Column 
    For i = 1 To 10 
    Set c = DataGrid1.Columns.Add(DataGrid1.Columns.Count) 
    Next 
    With c 
    .Visible = True 
    .Width = 1000 
    .Alignment = dbgRight 
    End With 
    DataGrid1.Columns(0).Width = 500
    DataGrid1.Columns(1).Width = 700
    DataGrid1.Columns(2).Width = 500
    DataGrid1.Columns(3).Width = 500
    DataGrid1.Columns(4).Width = 1100
    DataGrid1.Columns(5).Width = 1100
    DataGrid1.Columns(6).Width = 800
    DataGrid1.Columns(7).Width = 900
    DataGrid1.Columns(8).Width = 1500
    DataGrid1.Columns(9).Width = 800
    DataGrid1.Columns(10).Width = 1100
    DataGrid1.Columns(11).Width = 1200
    DataGrid1.Columns(12).Width = 800
    '设置标题 
    DataGrid1.Columns(0).Caption = "学号" 、、
    DataGrid1.Columns(1).Caption = "姓名" 
    DataGrid1.Columns(2).Caption = "年龄" 
    ......