
正文
包含vb.netview的词条
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
vb.net中如何获得DataGridView单元格内容
当前单元格指vb.netview的是 DataGridView 焦点所在的单元格vb.netview,它可以通过 DataGridView 对象的 CurrentCell 属性取得。
如果当前单元格不存在的时候vb.netview,返回Nothing(C#是null)[VB.NET]
' 取得当前单元格内容
Console.WriteLine(DataGridView1.CurrentCell.Value)
' 取得当前单元格的列 Index
Console.WriteLine(DataGridView1.CurrentCell.ColumnIndex)
' 取得当前单元格的行 Index
Console.WriteLine(DataGridView1.CurrentCell.RowIndex) [C#]
// 取得当前单元格内容
Console.WriteLine(DataGridView1.CurrentCell.Value);
// 取得当前单元格的列 Index
Console.WriteLine(DataGridView1.CurrentCell.ColumnIndex);
// 取得当前单元格的行 Index
Console.WriteLine(DataGridView1.CurrentCell.RowIndex);
另外,使用 DataGridView.CurrentCellAddress 属性(而不是直接访问单元格)来确定单元格所在的行vb.netview:DataGridView.CurrentCellAddress.Y 和列vb.netview: DataGridView.CurrentCellAddress.X 。
这对于避免取消共享行的共享非常有用。
相关问答
Q1: vb.net中DataGridView的问题
尝试了vb.netview,有两种方法。
1.键盘事件handled法;拦截按键
在你的DataGridView_KeyDown 事件中加入
If e.KeyCode = Keys.Enter Then
e.Handled = True'意思是接管了这个按键信息
'这里加入你想要的事件比如
'dim frm as new form1
'frm.showdialog
End If
这种方法只能每个控件都写一次,好控制,但是有点麻烦。
2.单位类继承法。
在vs菜单里单击项目,添加类。然后确定。
在类中输入。
Public Class DataGridViewX
Inherits DataGridView
Protected Overrides Function ProcessCmdKey(ByRef msg As System.Windows.Forms.Message, ByVal keyData As System.Windows.Forms.Keys) As Boolean
If msg.WParam.ToInt32() = CInt(Keys.Enter) Then
'这里是你想做的事情。
Return True
End If
Return MyBase.ProcessCmdKey(msg, keyData)
End Function
End Class
然后保存工程,生成。一定要生成。
然后回到form(可视化编辑模式,也就是你的主程序窗口,)
就好像你拖拽一个button一样,在工具箱里找到刚刚的
DataGridViewX
控件,然后拖拽,OK了,这个DataGridView具有特殊功能。
这个方法快捷有效~vb.netview我就是这么做的~。
但是如果工程已经成型,数据庞大,不推荐这么做_~
这可是原创!~我不喜欢转载呵呵。
不用说QQ了这次,,,498483439我是新手。
Q2: vb.net DataGridView 用法请教
我猜你是想通过两个不用的sub对一个listview进行操作:
如果你的第一次操作是放在sub form_load()中,因为vb.net只为每个窗体提供了一个form_load,就是窗体运行时自动加载的项。你的第二次操作不再放在form_load()中系统就没办法自动再加载你的第二次操作,要用事件触发再能完成你的第二次操作.
Q3: VB.net DataGridView
窗体中有个datagridview1的控件,共有3列,分别是column1,column2,total。
在datagridview1的CellValueChanged事件中加入求和的语句。代码如下:
Private Sub DataGridView1_CellValueChanged(ByVal sender As Object, _
ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) _
Handles DataGridView1.CellValueChanged
'最后一个单元格的值发生变化时,不计算。
If e.ColumnIndex = DataGridView1.Columns.Count - 1 Then
Exit Sub
End If
Dim Sum As Double = 0
Dim CurrentCellValue As Double
'计算除最后一个单元格以外的单元格的数值和
For i As Integer = 0 To DataGridView1.Columns.Count - 2
Try
CurrentCellValue = CDbl(DataGridView1.Rows(e.RowIndex).Cells(i).Value)
Catch ex As Exception
CurrentCellValue = 0
End Try
Sum += CurrentCellValue
Next
Try
DataGridView1.Rows(e.RowIndex).Cells("Total").Value = Sum
Catch ex As Exception
End Try
End Sub
Q4: VB.NET中层次数据绑定TreeView的实现
; 提要:在VB 中 常将TreeView用来表示层次数据 但相关vb.netview的与数据库进行交互vb.netview的代码 需要大量的采用手工编码;在中 由于数据绑定功能的加强及语言特性的增强 可以很容易的实现TreeView与层次数据的绑定 本文将首先建立一个继承自TreeView的 dbTreeView 然后用一个单位(部门)的层次数据与dbTreeView进行数据绑定 并提供vb.netview了与数据库进行交互的代码 从层次数据的表达方式开始在本例中 部门表(department)中有五个字段 如下表: 字段名 字段 类型说明 ID 自动编号 Key Code String 编码 Name String 名称 PID Int 父结点的ID CPtr boolean 是否有子结点 继承自TreeNode的myTreeNode在myTreeNode中 新增vb.netview了三个属性 如下表: 属性名 类型 说明 Value Object Key PID Object 父结点的ID CPtr Boolean 是否有子结点在Init事件中 根据传入的四个参数 设置这三个属性和Text属性 将dbTreeView绑定到数据源 属性名 类型 说明 Datasource dataview dbTreeVIew的数据源使用dataview 而不是object Value Member string值成员(数据源[dataview]的列名) Display Member string显示(在Text中)成员 Pid Member string父ID成员 CPtr Member string是否有子结点后四个属性对应myTreeNode的value text pid cptr 相关代码如下: Protected Property DataSource() As Object GetReturn mDataView End Get Set(ByVal Value As Object)If Value Is Nothing ThenElse mDataView = Value cm = CType(Me BindingContext(mDataView) CurrencyManager) UpdateTreeView()End If End SetEnd PropertyProtected Property PidMember() As String GetReturn mPidMember End Get Set(ByVal Value As String)mPidMember = Value End SetEnd PropertyProtected Property DisplayMember() As String GetReturn Join(mDisplayMember SplitChar) End Get Set(ByVal Value As String)mDisplayMember = Split(Value SplitChar) End SetEnd Property 注意 这几个属性都是保护成员 必须在Init事件中设置:Public Sub Init(ByVal dispmember As String ByVal valuemember As String ByVal pidmember As String ByVal cptrmember As String ByVal datasource As DataView) Me ValueMember = valuemember Me DisplayMember = dispmember Me PidMember = pidmember Me CPtrMember = cptrmember Me DataSource = datasource 取value最大值 新增时将value+ 保证关健值唯一 Me mDataView Sort = Me ValueMember Me m_MaxID = Me GetValue(Me mDataView Count )End Sub
设置DisplayMember属性的格式如:字段 ;字段 ;字段 …
在设置属性时 将传来的参数转换为字符串数组mDisplayMember 在检索值时返回数据如:值 值 值 …
Protected Overridable Function GetDisplay(ByVal Index As Integer) As Object Dim i As Integer Dim temp As String = For i = To mDisplayMember Length temp = temp IIf(i LinkChar ) mDataView(Index)(mDisplayMember(i)) Next Return tempEnd Function其它检索值的函数请参见源程序 生成树UpdateTreeView调用私有方法FillTree来生成树 需要注意的 FillTree只是生成指定结点的子结点并将其添加到指定结点 而不是一次就将所有结点添加到树中 如果未指定结点(第一次填充时) 只是添加顶层结点 Private Sub FillTree(ByRef pnode As myTreeNode Optional ByVal filter As String = ) mDataView RowFilter = filter Dim i As Integer icol As Integer Dim newnode As myTreeNode RemoveHandler cm PositionChanged AddressOf cm_PositionChanged Me BeginUpdate() For i = To mDataView Count() newnode = New myTreeNode(GetDisplay(i) GetValue(i) GetPid(i) GetCPtr(i)) 当有子结点时 为这个结点添加一个空子结点If newnode CPtr Then Dim nullnode As New myTreeNode() nullnode Value = NoExpandNodeValue newnode Nodes Add(nullnode)End IfIf pnode Is Nothing Then Me Nodes Clear() Me Nodes Add(newnode)Else pnode Nodes Add(newnode)End If Next Me EndUpdate() mDataView RowFilter = AddHandler cm PositionChanged AddressOf cm_PositionChangedEnd Sub在展开有子结点的结点前 删除所有子结点 再用FillTree为待展开结点新增子结点 Private Sub dbTreeView_BeforeExpand(ByVal sender As Object ByVal e As System Windows Forms TreeViewCancelEventArgs) Handles MyBase BeforeExpand 当是新增结点引起BeforeExpand事件时 直接退出 If ExpandWhenAddNode Then Exit Sub 在展开结点前更新子结点 Dim currentnode As myTreeNode = CType(e Node myTreeNode) With currentnode Nodes Clear()FillTree(currentnode mPidMember = CInt( Value)) End WithEnd Sub 实现数据与绑定控件的同步要实现两个方面的同步: 其它绑定控件(如textbox等)应与TreeView当前结点所指向的记录位置一致 Private Sub dbTreeView_AfterSelect(ByVal sender As Object ByVal e As System Windows Forms TreeViewEventArgs) Handles MyBase AfterSelect If e Node Is Nothing Then Exit Sub 定位到position cm Position = GetPosition(CType(e Node myTreeNode) Value) If AllowEdit ThenoldNode = e NodeoldPos = cm Position End IfEnd Sub 在其它绑定控件改变了数据源后 更新树结点 这个工作在触发CurrencyManager的PositionChanged事件时进行 Public Sub cm_PositionChanged(ByVal sender As Object ByVal e As System EventArgs) If CType(Me SelectedNode myTreeNode) Value GetValue(cm Position) ThenDebug WriteLine( Current node isn t correct point to currencymanager position! )Me SelectedNode = FindNodeByValue(GetValue(cm Position) Me Nodes) End If If AllowEdit ThenIf Me SelectedNode Is Nothing AndAlso cm Position = cm Count Then 当新增记录时 新增树结点 If CType(cm Current DataRowView) IsNew ThenMe SelectedNode = AddNode(cm Position)Exit Sub End IfEnd IfIf Not oldNode Is Nothing Then If CType(oldNode myTreeNode) Value = GetValue(oldPos) Then 更新老结点oldNode Text = GetDisplay(oldPos) Else End IfEnd If End IfEnd Sub
使用dbTreeView程序运行后界面如下:相关代码请参见源程序 这里不做详述
lishixinzhi/Article/program/net/201311/13916
关于vb.netview和的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。








