How to: add the ComboBox control to the Windows form DataGrid Control (from msdn)

Source: Internet
Author: User
How to: add the ComboBox control to the Windows form DataGrid Control

Applicable

This document references the following Microsoft. NET Framework class library namespace:

  • System. Data. sqlclient
  • System. Windows. Forms

Content of this task
  • Summary
    • Example

Summary

This step-by-step guide describes howComboBoxAdd controlDataGridControl method.

There are many waysComboBoxAdd controlDataGridControl. Most of the methods involveDataGridOfColumnstylesSet. However, this article will use a relatively simple method, drop-downComboBoxAdd controlDataGridOfWidgetSet.

Back to the top

Example
  1. Follow these steps to create a New Visual Basic Windows application project:

    1. Start Microsoft Visual Studio. NET.
    2. InFileMenu, pointingNewAnd then clickProject.
    3. InCreate a projectIn the dialog box, clickObject TypeUnderVisual Basic ProjectAnd then clickTemplateUnderWindows Applications. By default, form1 is added.
  2. SetDataGridControls are dragged from toolbox to form1.
  3. Add the following code to the "Declaration" section of form1.vb at the top of the code window:
    Imports System.Data.SqlClientImports System.Windows.Forms
  4. Add the following code to the "Windows Forms designer code generation" section of the Code window:
    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.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    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.Top = DataGrid1.GetCurrentCellBounds.Top            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. Modify the connection string according to your environment requirements.
  6. Press F5 to run the project. ClickDataGridA field in the "title" column. You will notice thatComboBoxControl is located inDataGrid.
  7. ExpandComboBox. You will notice that a title list is displayed.

Back to the top information in this article applies:

  • Microsoft Visual Basic. Net (1, 2002)
Latest updates: (1.0)
Keywords Kbhowto kbhowtomaster kbsqlclient kbsystemdata kb321_7 kbauddeveloper
Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.