Public MyCombo AsNew ComboBox() Dim con AsNew SqlConnection("server=myservername;uid=myid;pwd=mypassword;database=northwind") Dim daEmp AsNew SqlDataAdapter("Select * From Employees", con) Public ds AsNew DataSet() PrivateSub Form1_Load()Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) HandlesMyBase.Load AddHandler MyCombo.TextChanged, AddressOf Ctrls_TextChanged 'Fill ComboBox list. MyCombo.Name ="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 PrivateSub DataGrid1_Paint()Sub DataGrid1_Paint(ByVal sender AsObject, ByVal e As System.Windows.Forms.PaintEventArgs) Handles DataGrid1.Paint If DataGrid1.CurrentCell.ColumnNumber =3Then MyCombo.Width = DataGrid1.GetCurrentCellBounds.Width EndIf End Sub PrivateSub Ctrls_TextChanged()Sub Ctrls_TextChanged(ByVal sender AsObject, ByVal e As System.EventArgs) If DataGrid1.CurrentCell.ColumnNumber =3Then MyCombo.Visible =False If DataGrid1.Item(DataGrid1.CurrentCell) &""=""Then SendKeys.Send("*") EndIf DataGrid1.Item(DataGrid1.CurrentCell) = MyCombo.Text EndIf End Sub PrivateSub DataGrid1_CurrentCellChanged()Sub DataGrid1_CurrentCellChanged(ByVal sender AsObject, ByVal e As System.EventArgs) Handles DataGrid1.CurrentCellChanged If DataGrid1.CurrentCell.ColumnNumber =3Then MyCombo.Visible =False MyCombo.Width =0 MyCombo.Left = DataGrid1.GetCurrentCellBounds.Left MyCombo.Top = DataGrid1.GetCurrentCellBounds.Top MyCombo.Text = DataGrid1.Item(DataGrid1.CurrentCell) &"" MyCombo.Visible =True Else MyCombo.Visible =False MyCombo.Width =0 EndIf End Sub PrivateSub DataGrid1_Scroll()Sub DataGrid1_Scroll(ByVal sender AsObject, ByVal e As System.EventArgs) Handles DataGrid1.Scroll MyCombo.Visible =False MyCombo.Width =0 End Sub PrivateSub DataGrid1_Click()Sub DataGrid1_Click(ByVal sender AsObject, ByVal e As System.EventArgs) Handles DataGrid1.Click MyCombo.Visible =False MyCombo.Width =0 End Sub