它山之石
将 ComboBox 控件添加…
使用ASP.NET开发邮件发…
C#中读取数据库中Imag…
传播速度最快病毒发作…
在新建菜单中添加文件…
Rundll32用法浅说
彻底解决 CrystalRep…
如何实现WIN2000开机时…
用API函数控制光驱的开…
文件扩展名建立关联
1 2
  其它文章
全通数据管理系统编程速…
自动报价及订单系统
全通数据管理系统2004
远程加密传输系统
Word与方正排版转换器
全通数据管理系统
排版测试2000
更多案例....
工会会员管理系统
信访管理系统
客户服务专线
010-85740540
MSN在线联系
alitengb@hotmail.com
    站内搜索:    
深圳通代理程序1.21发布
PNP信息服务平台
支票打印管理软件V1.21
支票打印管理软件V1.0
全通数据管理系统2004
将 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 标准版

  我要发表评论
上一篇 下一篇
网站导航 | 网站管理 | 网站信箱 | 软件注册 | 招贤纳士
版权所有:北京全唐软件技术有限责任公司
电子邮件:postmaster@alltang.com
联系电话:86-010-85740540
京ICP备05039008