给DataGrid加上右键菜单

原创 2004年04月27日 23:54:00

给DataGrid加上右键菜单

     

         SunHai

   开发工具:Microsoft Visual Studio .NET 2003
   操作系统:Windows XP

                 用XML作为DataGrid的数据源

  码如下:

Dim fileName As String
Dim MyXmlDataSet As New DataSet
fileName = "sunhai.xml"
MyXmlDataSet.ReadXml(fileName)
Form1.DefInstance.DataGrid1.DataSource = MyXmlDataSet


  启动程序,DataTable默认是闭合的,需要手动点击展开,不胜其烦,用如下代码实现自动展开DataTable:

Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load

  DataGrid1.Expand(-1) '要展开的行数,设为-1表示展开所有行
  DataGrid1.NavigateTo(0, "DataTableName")

End Sub


   

  
                获得在DataGrid1鼠标右击的座标

Dim rowNum, columnNum As Integer '分别是行号和列号
Private Sub DataGrid1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles DataGrid1.MouseDown

   Dim myGrid As DataGrid = CType(sender, DataGrid)
  Dim hti As System.Windows.Forms.DataGrid.HitTestInfo
  hti = myGrid.HitTest(e.X, e.Y)

  If e.Button = MouseButtons.Right And e.Clicks = 1 Then '如果是鼠标右击
     Select Case hti.Type '
       Case System.Windows.Forms.DataGrid.HitTestType.Cell,         System.Windows.Forms.DataGrid.HitTestType.RowHeader,         System.Windows.Forms.DataGrid.HitTestType.ColumnHeader

         rowNum = hti.Row     '获得鼠标右击所在行
         columnNum = hti.Column '获得鼠标右击所在列
     End Select

  End If

End Sub

                 

                  添加ContextMenu

  在设计模式添加ContextMenu1:
  Text      Name
  删除一行    mnuDeleteRow
  插入一行     mnuInsertRow

 把DataGrid1属性中的ContextMenu设为ContextMenu1。

Private Sub mnuDeleteRow_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuDeleteRow.Click

  MyXmlDataSet.Tables(0).Rows.RemoveAt(rowNum) '删除行

End Sub

 

Private Sub mnuInsertRow_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuInsertRow.Click

  Dim row1 As DataRow = MyXmlDataSet.Tables(0).NewRow
  MyXmlDataSet.Tables(0).Rows.InsertAt(row1, rowNum)
  MyXmlDataSet.AcceptChanges()  '不加这句,你会发现所插入行都到“最后”了

End Sub


 
    怎么在DataTable中插入列呢?请各位指教!

                            2004年4月27日

我的QQ:  26624998
我的网站:
http://blog.csdn.net/2066/

JQueryEasyUI学习笔记(十一)datagrid 右键菜单,冻结列

欢迎大家转载,转载请注明出处! 希望这个笔记对自己和大家有用,但是本人水平有限,如果出错的地方,希望大家指出,多多批评,谢谢! 今天是datagrid框架的冻结列和右键菜单: 废话就不多说了,直...
  • dyllove98
  • dyllove98
  • 2013年04月30日 17:32
  • 12146

Datagrid添加右键菜单

最近的一个项目前台使用的EasyUI,每个界面都有DataGrid控件,按照我们的想法,应该做出来的效果是单击选中,双击可编辑,当然右键也应该出现这些菜单按钮,首先建一个DataGrid的表格。。。。...
  • u013036688
  • u013036688
  • 2015年08月14日 19:57
  • 1348

【ztree系列】右键菜单、节点伸缩

在网页设计中,一般很少使用右键功能,当我们未定义右键操作的时候,默认的都是调用浏览器事件。但是在有些情况下,例如为了节省页面空间(让页面更简洁、美观)或者是用户不常用的一些功能,我们就可以把它们都放在...
  • chenyanmoting
  • chenyanmoting
  • 2016年01月09日 17:41
  • 7906

WPF分页DataGrid(二)列右键菜单实现

在"WPF分页DataGrid"中介绍了如何实现分页功能,本文中介绍如果实现右键菜单。见下图:点击菜单项Age,将Age列隐藏,再点击则显示;并实现移动列后,同步显示。要实现功能需要在Loaded事件...
  • qing2005
  • qing2005
  • 2012年06月21日 15:46
  • 7374

JQueryEasyUI学习笔记(十一)datagrid 右键菜单,冻结列

转载地址:http://blog.csdn.net/dyllove98/article/details/8870119  (为毛转载按钮用不了???) 欢迎大家转载,转载请注明出处! 希望...
  • fch86
  • fch86
  • 2017年12月11日 15:16
  • 8

在Flex中给datagrid添加右键菜单项

xmlns:s="library://ns.adobe.com/flex/spark"    xmlns:mx="library://ns.adobe.com/flex/mx"   creationC...
  • Arlen527
  • Arlen527
  • 2013年12月20日 11:11
  • 478

【项目经验】--EasyUI DataGrid之右键菜单

前两天验收项目,老总提了一个不是需求的需求,为什么这么说呢?因为我们的管理不到位!话说当天,我们UI系统下发了一个总文件,上面写着“各个系统找一个没有添加UI的模块去添加最新版本UI进行测试”,然后过...
  • u013045878
  • u013045878
  • 2016年02月03日 11:24
  • 563

Jquery EasyUI---Datagrid右键菜单

最近在学Jquery EasyUI,现在来说一说EasyUI的DataGrid,一般当我们在实现前端界面的时候,经常在DataGrid 的上面或者后面加一些按钮,方便用户进行一些添加,删除,编辑等功能...
  • u010853701
  • u010853701
  • 2015年02月14日 11:40
  • 4358

tree与datagrid右键菜单

项目中经常遇到右键菜单的问题,特别是对于Tree 或者 DataGrid 组建的右键菜单问题。 常见的问题譬如是:Tree 组件对于子节点删除、修改,在folder上显示增加的操作。   ...
  • sotower
  • sotower
  • 2013年11月18日 09:20
  • 765

JQueryEasyUI学习笔记(十一)datagrid 右键菜单,冻结列

欢迎大家转载,转载请注明出处! 希望这个笔记对自己和大家有用,但是本人水平有限,如果出错的地方,希望大家指出,多多批评,谢谢! 今天是datagrid框架的冻结列和右键菜单: 废话就...
  • lououi
  • lououi
  • 2014年04月15日 10:13
  • 492
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:给DataGrid加上右键菜单
举报原因:
原因补充:

(最多只允许输入30个字)