VB.NET Winform 中DATAGRID控件中添加COMBOXBOX控件

    技术2022-05-11  108

    创建示例

    <script type="text/javascript">loadTOCNode(2, 'summary');</script> 1.按照如下步骤创建一个新的 Visual Basic Windows 应用程序项目: a. 启动 Microsoft Visual Studio .NET。b. 在文件菜单上,指向新建,然后单击项目。c. 在新建项目对话框中,单击对象类型下的 Visual Basic 项目,然后单击模板下的 Windows 应用程序。默认情况下将添加 Form1。 2.将一个 DataGrid 控件从工具箱到拖到 Form1。3.将下面的代码添加到代码窗口顶部的 Form1.vb 的“声明”部分中: 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.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 ObjectByVal 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 ObjectByVal 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 ObjectByVal 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 ObjectByVal e As System.EventArgs) Handles DataGrid1.Scroll        MyCombo.Visible = False        MyCombo.Width = 0    End Sub      Private   Sub DataGrid1_Click(ByVal sender As ObjectByVal e As System.EventArgs) Handles DataGrid1.Click        MyCombo.Visible = False        MyCombo.Width = 0    End Sub

    最新回复(0)