1.建立一个标准的Windows应用程序. 

2.向窗体中加入一个DataGrid控件.

3.在申明段前加入如下代码:

Imports System.Data.SqlClient
 Imports System.Windows.Forms


 
4.在 Windows 窗体设计器生成的代码 后输入如下代码:

Public MyCombo As New ComboBox()
     Dim con As New SqlConnection("server=myservername;uid=myid;pwd=mypassword;database=northwind")
     Dim daEmp As New SqlDataAdapter("Select * From Employees", con)    Public ds As New DataSet()
     Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
         AddHandler MyCombo.TextChanged, AddressOf Ctrls_TextChanged
         'Fill ComboBox list.
          = "MyCombo"
         MyCombo.Visible = False
         MyCombo.Items.Clear()
         MyCombo.Items.Add("Sales Representative")
         MyCombo.Items.Add("Inside Sales Coordinator")
         MyCombo.Items.Add("Vice President, Sales")
         MyCombo.Items.Add("Sales Manager")
         MyCombo.Items.Add("Flunky")       
         daEmp.Fill(ds, "Employees")        'Set the RowHeight of the DataGrid to the height of the ComboBox.
         DataGrid1.PreferredRowHeight = MyCombo.Height
         
         DataGrid1.DataSource = ds        DataGrid1.DataMember = "Employees"
         'Add ComboBox to the Control collection of the DataGrid.
         DataGrid1.Controls.Add(MyCombo)
     End Sub    Private Sub DataGrid1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles DataGrid1.Paint
         If DataGrid1.CurrentCell.ColumnNumber = 3 Then
             MyCombo.Width = DataGrid1.GetCurrentCellBounds.Width
         End If
     End Sub    Private Sub Ctrls_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs)
         If DataGrid1.CurrentCell.ColumnNumber = 3 Then
             MyCombo.Visible = False
             If DataGrid1.Item(DataGrid1.CurrentCell) & "" = "" Then
                 SendKeys.Send("*")
             End If
             DataGrid1.Item(DataGrid1.CurrentCell) = MyCombo.Text
         End If
     End Sub    Private Sub DataGrid1_CurrentCellChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles DataGrid1.CurrentCellChanged
         If DataGrid1.CurrentCell.ColumnNumber = 3 Then
             MyCombo.Visible = False
             MyCombo.Width = 0
             MyCombo.Left = DataGrid1.GetCurrentCellBounds.Left
              = 
             MyCombo.Text = DataGrid1.Item(DataGrid1.CurrentCell) & ""
             MyCombo.Visible = True
         Else
             MyCombo.Visible = False
             MyCombo.Width = 0
         End If
     End Sub    Private Sub DataGrid1_Scroll(ByVal sender As Object, ByVal e As System.EventArgs) Handles DataGrid1.Scroll
         MyCombo.Visible = False
         MyCombo.Width = 0
     End Sub    Private Sub DataGrid1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles DataGrid1.Click
         MyCombo.Visible = False
         MyCombo.Width = 0
     End Sub


 
5.修改数据库的连接串为一可用链接.