好象VB.net没有这事件!
请问如何实现..................
9 个解决方案
#1
MouseUp, for example, 参考
5.11 How can I select the entire row when the user clicks on a cell in the row?
http://www.syncfusion.com/FAQ/WinForms/FAQ_c44c.asp#q689q
5.11 How can I select the entire row when the user clicks on a cell in the row?
http://www.syncfusion.com/FAQ/WinForms/FAQ_c44c.asp#q689q
#2
ItemCommand事件
如果命令(CommandName)是Update或Select或Edit或Cancel则会优先触发对应的UpdateCommand或SelectIndexChange或EditCommand或CancelCommand等事件.
如果命令(CommandName)是Update或Select或Edit或Cancel则会优先触发对应的UpdateCommand或SelectIndexChange或EditCommand或CancelCommand等事件.
#3
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)
Select Case hti.Type '以下展示的是该类型枚举的全部内容
Case System.Windows.Forms.DataGrid.HitTestType.None
MsgBox("你单击的是背景")
Case System.Windows.Forms.DataGrid.HitTestType.Cell
MsgBox("你单击的单元格位于行:" & hti.Row & ", 列:" & hti.Column)
Case System.Windows.Forms.DataGrid.HitTestType.ColumnHeader
MsgBox("你单击的是第" & hti.Column & "列的列头")
Case System.Windows.Forms.DataGrid.HitTestType.RowHeader
MsgBox("你单击的是第" & hti.Row & "行的行头")
Case System.Windows.Forms.DataGrid.HitTestType.ColumnResize
MsgBox("你单击的是第" & hti.Column & "列的边框")
Case System.Windows.Forms.DataGrid.HitTestType.RowResize
MsgBox("你单击的是第" & hti.Row & "行的边框")
Case System.Windows.Forms.DataGrid.HitTestType.Caption
MsgBox("你单击的是标题 ")
Case System.Windows.Forms.DataGrid.HitTestType.ParentRows
MsgBox("你单击的是父行 ")
End Select
End Sub
2. 双击事件(感谢acptvb网友的帮助)
在上面的单击事件中稍加修改,就可得到双击事件,只需要在sub里加入如下的判断语句:
If e.Button = MouseButtons.Left And e.Clicks = 2 Then
Dim myGrid As DataGrid = CType(sender, DataGrid)
…
End Select
End If
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)
Select Case hti.Type '以下展示的是该类型枚举的全部内容
Case System.Windows.Forms.DataGrid.HitTestType.None
MsgBox("你单击的是背景")
Case System.Windows.Forms.DataGrid.HitTestType.Cell
MsgBox("你单击的单元格位于行:" & hti.Row & ", 列:" & hti.Column)
Case System.Windows.Forms.DataGrid.HitTestType.ColumnHeader
MsgBox("你单击的是第" & hti.Column & "列的列头")
Case System.Windows.Forms.DataGrid.HitTestType.RowHeader
MsgBox("你单击的是第" & hti.Row & "行的行头")
Case System.Windows.Forms.DataGrid.HitTestType.ColumnResize
MsgBox("你单击的是第" & hti.Column & "列的边框")
Case System.Windows.Forms.DataGrid.HitTestType.RowResize
MsgBox("你单击的是第" & hti.Row & "行的边框")
Case System.Windows.Forms.DataGrid.HitTestType.Caption
MsgBox("你单击的是标题 ")
Case System.Windows.Forms.DataGrid.HitTestType.ParentRows
MsgBox("你单击的是父行 ")
End Select
End Sub
2. 双击事件(感谢acptvb网友的帮助)
在上面的单击事件中稍加修改,就可得到双击事件,只需要在sub里加入如下的判断语句:
If e.Button = MouseButtons.Left And e.Clicks = 2 Then
Dim myGrid As DataGrid = CType(sender, DataGrid)
…
End Select
End If
#4
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dv_vstechart/html/vbtchTopQuestionsAboutASPNETDataGridServerControl.asp
#5
使用cell事件...
#6
单击除了DataGrid本身取得你的事件外,Datagrid 中的cell也会取得你的事件.是CellEnter事件.
#7
Datagrid的Cell是一个TextBox,所以是TextBox的Enter事件.
#8
测试了一下,chenyu001(三步一水,淹掉水园) 兄的代码真的是不错,
佩服,
不过,感觉HitTestType和 textBox的ENTER 事件有明显的不同,
HitTestType好象做得会比较细,
觉得楼主需要的应该是HitTestType的代码,
佩服,
不过,感觉HitTestType和 textBox的ENTER 事件有明显的不同,
HitTestType好象做得会比较细,
觉得楼主需要的应该是HitTestType的代码,
#9
用个笨方法,作成模板列,加一个button,修改一下样式,让其看起来和没有一样,然后当点击按钮时就和点击单元格没有什么区别了,这只是个高手从不用的招,实在不行你也可以试一试!
#1
MouseUp, for example, 参考
5.11 How can I select the entire row when the user clicks on a cell in the row?
http://www.syncfusion.com/FAQ/WinForms/FAQ_c44c.asp#q689q
5.11 How can I select the entire row when the user clicks on a cell in the row?
http://www.syncfusion.com/FAQ/WinForms/FAQ_c44c.asp#q689q
#2
ItemCommand事件
如果命令(CommandName)是Update或Select或Edit或Cancel则会优先触发对应的UpdateCommand或SelectIndexChange或EditCommand或CancelCommand等事件.
如果命令(CommandName)是Update或Select或Edit或Cancel则会优先触发对应的UpdateCommand或SelectIndexChange或EditCommand或CancelCommand等事件.
#3
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)
Select Case hti.Type '以下展示的是该类型枚举的全部内容
Case System.Windows.Forms.DataGrid.HitTestType.None
MsgBox("你单击的是背景")
Case System.Windows.Forms.DataGrid.HitTestType.Cell
MsgBox("你单击的单元格位于行:" & hti.Row & ", 列:" & hti.Column)
Case System.Windows.Forms.DataGrid.HitTestType.ColumnHeader
MsgBox("你单击的是第" & hti.Column & "列的列头")
Case System.Windows.Forms.DataGrid.HitTestType.RowHeader
MsgBox("你单击的是第" & hti.Row & "行的行头")
Case System.Windows.Forms.DataGrid.HitTestType.ColumnResize
MsgBox("你单击的是第" & hti.Column & "列的边框")
Case System.Windows.Forms.DataGrid.HitTestType.RowResize
MsgBox("你单击的是第" & hti.Row & "行的边框")
Case System.Windows.Forms.DataGrid.HitTestType.Caption
MsgBox("你单击的是标题 ")
Case System.Windows.Forms.DataGrid.HitTestType.ParentRows
MsgBox("你单击的是父行 ")
End Select
End Sub
2. 双击事件(感谢acptvb网友的帮助)
在上面的单击事件中稍加修改,就可得到双击事件,只需要在sub里加入如下的判断语句:
If e.Button = MouseButtons.Left And e.Clicks = 2 Then
Dim myGrid As DataGrid = CType(sender, DataGrid)
…
End Select
End If
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)
Select Case hti.Type '以下展示的是该类型枚举的全部内容
Case System.Windows.Forms.DataGrid.HitTestType.None
MsgBox("你单击的是背景")
Case System.Windows.Forms.DataGrid.HitTestType.Cell
MsgBox("你单击的单元格位于行:" & hti.Row & ", 列:" & hti.Column)
Case System.Windows.Forms.DataGrid.HitTestType.ColumnHeader
MsgBox("你单击的是第" & hti.Column & "列的列头")
Case System.Windows.Forms.DataGrid.HitTestType.RowHeader
MsgBox("你单击的是第" & hti.Row & "行的行头")
Case System.Windows.Forms.DataGrid.HitTestType.ColumnResize
MsgBox("你单击的是第" & hti.Column & "列的边框")
Case System.Windows.Forms.DataGrid.HitTestType.RowResize
MsgBox("你单击的是第" & hti.Row & "行的边框")
Case System.Windows.Forms.DataGrid.HitTestType.Caption
MsgBox("你单击的是标题 ")
Case System.Windows.Forms.DataGrid.HitTestType.ParentRows
MsgBox("你单击的是父行 ")
End Select
End Sub
2. 双击事件(感谢acptvb网友的帮助)
在上面的单击事件中稍加修改,就可得到双击事件,只需要在sub里加入如下的判断语句:
If e.Button = MouseButtons.Left And e.Clicks = 2 Then
Dim myGrid As DataGrid = CType(sender, DataGrid)
…
End Select
End If
#4
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dv_vstechart/html/vbtchTopQuestionsAboutASPNETDataGridServerControl.asp
#5
使用cell事件...
#6
单击除了DataGrid本身取得你的事件外,Datagrid 中的cell也会取得你的事件.是CellEnter事件.
#7
Datagrid的Cell是一个TextBox,所以是TextBox的Enter事件.
#8
测试了一下,chenyu001(三步一水,淹掉水园) 兄的代码真的是不错,
佩服,
不过,感觉HitTestType和 textBox的ENTER 事件有明显的不同,
HitTestType好象做得会比较细,
觉得楼主需要的应该是HitTestType的代码,
佩服,
不过,感觉HitTestType和 textBox的ENTER 事件有明显的不同,
HitTestType好象做得会比较细,
觉得楼主需要的应该是HitTestType的代码,
#9
用个笨方法,作成模板列,加一个button,修改一下样式,让其看起来和没有一样,然后当点击按钮时就和点击单元格没有什么区别了,这只是个高手从不用的招,实在不行你也可以试一试!