 |
|
 |
客户服务专线 |
| 010-85740540 |
|
|
|
 |
MSN在线联系
|
| alitengb@hotmail.com |
|
|
|
|
将 ComboBox 控件添加到 Windows 窗体 DataGrid 控件
|
|
发布时间:2005-03-10 15:24 阅读人数:29316
|
本文引用下面的 Microsoft .NET 框架类库名称空间: ? System.Data.SqlClient ? System.Windows.Forms
概要 本分步指南介绍一种您可以用来将 ComboBox 控件添加到 DataGrid 控件的方法。
有很多方法可以将 ComboBox 控件添加到 DataGrid 控件。其中多数方法涉及到使用 DataGrid 的 ColumnStyles 集合。不过,本文将使用一种较为简单的方法,将下拉 ComboBox 控件添加到 DataGrid 的控件集合。
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 窗体设计器生成代码”部分之后:
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. 根据您的环境需要修改连接字符串。 6. 按 F5 键运行该项目。单击 DataGrid 中“标题”列中的一个字段。您会注意到 ComboBox 控件位于 DataGrid 中。 7. 展开 ComboBox。您会注意到显示出了一个标题列表。
--------------------------------------------------------------------------------
这篇文章中的信息适用于: ? Microsoft Visual .NET 2002 标准版 |
我要发表评论
|
|
| 上一篇 下一篇 |
|
|
|
|