DataGridView如何读出当前鼠标选定行的数据!
如题,要代码~~ --------------------编程问答-------------------- --------------------编程问答-------------------- 如果是绑定到BindingSource,那么BindingSource.Current就代表当前项。你肯定做过通过[数据]菜单-[显示数据源]-[新建数据源]方式拖拽数据库表到Form上生成过DataGridView吧?
就比如你拖的是Northwind数据库的Products表。
那vs2005会自动生成一个productsBindingSource是吧?给界面加个按钮,用如下代码访问当前项的某个字段值。
private void button1_Click(object sender, EventArgs e)
{
DataRowView drv = productsBindingSource.Current as DataRowView;
NorthwindDataSet.ProductsRow row = drv.Row as NorthwindDataSet.ProductsRow;
MessageBox.Show(row.ProductName);
}
.net 2.0开始类似这种操作都是推荐使用BindingSource作为中间层的。 --------------------编程问答-------------------- 我在别的帖子里面有写,你要不看下 用当鼠标的坐标转化为当前的行和列 。你响应在grid_doubleclick 事件里面 用e.x,e.y
--------------------编程问答-------------------- http://topic.csdn.net/u/20071226/16/b6587abe-800f-45b8-8819-c8e5857f421f.html
代码上面有写 自己进去拉。。。貌似最近都是这个问题 。 --------------------编程问答--------------------
--------------------编程问答-------------------- DataGridView 应该有个SelectItem 表示当前选定行的属性 --------------------编程问答--------------------
Protected Overrides Sub OnMouseDown(ByVal e As System.Windows.Forms.MouseEventArgs)
Dim pt As New Point(e.X, e.Y)
Dim hti As DataGrid.HitTestInfo = Me.HitTest(pt)
If hti.Type = HitTestType.ColumnHeader AndAlso hti.Column = 1 Then
'don't sort col 1
Return 'don't call baseclass
End If
MyBase.OnMouseDown(e)
End Sub
--------------------编程问答-------------------- 哪有那么复杂模仿这个
For i As Long = 1 To DataGridView1.SelectedRows.Count
For j = 1 To DataGridView1.ColumnCount
MsgBox(DataGridView1.SelectedRows(i - 1).Cells(j - 1))
'显示选中的没个单元的数据
Next
Next
Me.DatagridView1.CurrentRow.Cells(0).Value
或者
Me.DatagridView1.CurrentRow.Cells("列名").Value
--------------------编程问答-------------------- row:currentrow
cell:currentcell
补充:.NET技术 , VB.NET