給DataGrid加上右鍵菜單
2024-07-21 02:23:35
供稿:網友
代碼如下:
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