189 8069 5689

vb.net选择的行数据 excel vba 选择行

VB.net中DataGridView中行的选择

仿造我的例子,你自己做做看1)设计一个类似的界面(我只有两个字段) 2)单击GridView的右上角小箭头,去掉逗允许编辑地(黑色框部分): 3)然后把GridView的属性做如下改动: 4)在Form1中增加绑定数据的代码(我是模拟的)Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load '动态增加一个表格,绑定到GridView上

创新互联建站坚持“要么做到,要么别承诺”的工作理念,服务领域包括:网站设计制作、成都网站建设、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的昌吉网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!

Dim dt As New DataTable

dt.Columns.Add("Id", GetType(Integer))

dt.Columns.Add("name", GetType(String))

dt.Columns(0).AutoIncrement = True

dt.Columns(0).AutoIncrementSeed = 1

dt.Columns(0).AutoIncrementStep = 1 '模拟数据库数据

Dim row As DataRow For i As Integer = 1 To 10

row = dt.NewRow

row("name") = "name" i

dt.Rows.Add(row)

Next

dt.AcceptChanges() DataGridView1.DataSource = dt End Sub 5)然后使用SelectionChanged事件这样编码:Private Sub DataGridView1_SelectionChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DataGridView1.SelectionChanged

If (DataGridView1.SelectedRows IsNot Nothing AndAlso DataGridView1.SelectedRows.Count 0) Then

'只选择单行,因此取第一行

txtId.Text = DataGridView1.SelectedRows(0).Cells(0).Value

txtName.Text = DataGridView1.SelectedRows(0).Cells(1).Value

End If

End Sub

VB.net中 datagridview控件如何读取框选区域内的行数和区域内的数据总和

在窗体上加上三个标签控件:Label1、Label2、Label3

Private Sub DataGridView1_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles DataGridView1.MouseUp

Dim counter As Integer

Dim SelectedCellTotal As Integer = 0

Dim SelectedCellCount As Integer = 0

For counter = 0 To (DataGridView1.SelectedCells.Count - 1)

If DataGridView1.SelectedCells(counter).FormattedValueType Is _

Type.GetType("System.String") Then

Dim value As String = Nothing

If (DataGridView1.IsCurrentCellDirty = True) Then

value = DataGridView1.SelectedCells(counter).EditedFormattedValue.ToString()

Else

value = DataGridView1.SelectedCells(counter).FormattedValue.ToString()

End If

If value IsNot Nothing Then

If Not value.Length = 0 Then

SelectedCellTotal = SelectedCellTotal + Integer.Parse(value)

SelectedCellCount = SelectedCellCount + 1

End If

End If

End If

Next

Label1.Text = "选中的单元格个数为: "  SelectedCellCount.ToString()

Label2.Text = "单元格里数据之和为: "  SelectedCellTotal.ToString()

Label3.Text = "选中的单元格行数为:"  DataGridView1.SelectedRows.Count.ToString()

End Sub

使用VB.NET的五个技巧之处理数据行

处理数据行(DataRow)

Windows窗体中的数据绑定列表框和组合框很节省时间 典型的代码如下(假定已经建立了SqlDataAdapter或者其它部件获取数据)

Dim ds As New DataSet() SqlDataAdapter Fill(ds Customers ) ListBox DataSource = ds Tables( Customers ) ListBox DisplayMember = CompanyName ListBox ValueMember = CustomerID

在这种情况下 代码使用Northwind数据库的顾客记录工作 DisplayMember属性设置为你希望用户在列表框中看到的记录字段 它是customers表的CompanyName 通常ValueMember属性设置为数据表中的一个键字段 对于customer来说是CustomerID 一旦用户选择了列表框中的一行 很容易使用列表框的SelectedValue属性获得键字段

MsgBox(ListBox SelectedValue)

但是有可能需要一个与被选择项相关的整个数据行对象的引用 例如 如果被选择的行需要被删除 就不知道键了 你需要一个数据行的引用以使用Delete方法

典型的Visual Basic开发者通常这样想 我已经得到了该行的键了 我将编写一些逻辑来查找使用该键的行 这样可以实现 但是有更好的实现方法 可以使用一行代码获取与列表框中选项关联的数据行

Dim dr As DataRow = CType(ListBox SelectedItem DataRowView) Row

通常该逻辑不会凭直觉出现 即使对经验丰富的开发者 为了解释这是怎样实现的 我把上面的一行拆成几行 下面的代码与上面代码的功能相同

Dim drv As DataRowView drv = CType(ListBox SelectedItem DataRowView) Dim dr As DataRow dr = drv Row

DataRowView类是数据行的包装 它被多个Windows窗体控件使用 它使得显示与控件中的数据行相关的数据更加容易 当列表框被数据绑定到数据表时(假定列表框中的有些行当前被选定了) 列表框的SelectedItem属性保存了一个DataRowView对象

这意味着我们能把列表框的SelectedItem属性转换到DataRowView对象 这就是上面代码中的第二行实现的 接着DataRowView暴露一个Row属性 它指向被包装的数据行 上面的代码声明了一个数据行并设置了Row属性

转换对象的类型以访问它的接口的技术在Visual Basic 中不是经常使用 但是在Visual Basic NET中这是经常的 有了上面的例子后 大多数有经验的开发者迅速跟上了这种技术

数据行的引用(dr)可用于用任何方式维护行 访问数据行中的任何特定字段是可行的 行中的数据可以被改变 能使数据行的Delete方法把该行标识为删除 或者从数据表的行集合中删除该行 下面的代码标识删除了一行

dr Delete()

lishixinzhi/Article/program/net/201311/12974


当前文章:vb.net选择的行数据 excel vba 选择行
标题链接:http://cdxtjz.cn/article/dopohsc.html

其他资讯