发新话题
打印

如何在DataGrid中添加ComboBox的方法

如何在DataGrid中添加ComboBox的方法

  有两中方法:

1.修改 ColumnStyles 属性的值.
2.在DataGrid里, 直接贴 Combo 控件. 如:

Public MyCombo As New ComboBox()
    Dim con As New
SqlConnection("server=myservername;uid=myid;pwd=mypassword;database=northwin
d")
    Dim daEmp As New SqlDataAdapter("Select * From Employees", con)

    Public ds As New DataSet()
    ** 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

    ** 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

    ** 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)

TOP

发新话题