无法将类型为“System.EventArgs”的对象强制转换为类型“System.Windows.Forms.DataGridViewCellEventArg

lilunlil 2017-05-20 12:13:03
从网上下载的教程代码,不应该不行呀,可现实就是不行。
代码很简单:在窗体上建一个datagridveiw,想达到一个效果,当鼠标浮在某一个单元格上时会弹出一个对话框来。
    Private Sub DataGridView1_MouseHover(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.MouseHover
MsgBox(e.RowIndex)
End Sub


运行后提示错误:无法将类型为“System.EventArgs”的对象强制转换为类型“System.Windows.Forms.DataGridViewCellEventArgs”

请高手解疑(代码应该没问题,毕竟是抄来的,我怀疑是哪地方设置错了?)
...全文
1491 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
threenewbee 2017-05-20
  • 打赏
  • 举报
回复
http://bbs.csdn.net/topics/350058003
lilunlil 2017-05-20
  • 打赏
  • 举报
回复
搞明白了,高手就是高手。 几句提示+度娘解决了 致谢!
水哥阿乐 2017-05-20
  • 打赏
  • 举报
回复
你说对了现实不行就是不行e.RowIndex是选中焦点行索引,而你应该用的是控件的ToolTipText属性
水哥阿乐 2017-05-20
  • 打赏
  • 举报
回复
找找其它原因,看不出是代码的影响的
lilunlil 2017-05-20
  • 打赏
  • 举报
回复
引用 8 楼 wtuqi 的回复:
我就你的代码试验过,没有你所说的情况

打扰你周末宝贵时间,真心感谢。
以下是我的代码:
Public Class Form2

Private Sub Form2_Load(sender As Object, e As EventArgs) Handles Me.Load
DataGridView1.RowCount = 10
DataGridView1.ColumnCount = 10
DataGridView1.Rows(2).Cells(2).Value = "100空" & Space(100) & "格"

End Sub
Private Sub DataGridView1_CellToolTipTextNeeded(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellToolTipTextNeededEventArgs) Handles DataGridView1.CellToolTipTextNeeded
DataGridView1.Rows(2).Cells(2).ToolTipText = e.ColumnIndex.ToString() + ", " + e.RowIndex.ToString()
End Sub
End Class


下面 gif是我的测试结果:生成的悬浮框是 “100空 格”,而不是"3,3"
水哥阿乐 2017-05-20
  • 打赏
  • 举报
回复
我就你的代码试验过,没有你所说的情况

    Private Sub DataGridView1_CellToolTipTextNeeded(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellToolTipTextNeededEventArgs) Handles DataGridView1.CellToolTipTextNeeded
        DataGridView1.Rows(2).Cells(2).Value = "100空" & Space(100) & "格"
        DataGridView1.Rows(2).Cells(2).ToolTipText = e.ColumnIndex.ToString() + ", " + e.RowIndex.ToString()
    End Sub
水哥阿乐 2017-05-20
  • 打赏
  • 举报
回复
2才对应的索引3,你要显示3.3你得改成 DataGridView1.Rows(2).Cells(2).Value 另外你的代码给出来的都好片面,你得给出你在那个事件中写的该代码
lilunlil 2017-05-20
  • 打赏
  • 举报
回复
引用 5 楼 wtuqi 的回复:
你这2句就不是一个作用,上面一句Cells(3).Value 这是给单元格赋值,如果你单元格本来就有值的话这句就用不着了 下面的这tooltiptext=才是给弹出提示语赋值
实际的运行效果是当我鼠标停在单元格上时,弹出的提示是“100空 格” 而不是我想达到的“3,3”
水哥阿乐 2017-05-20
  • 打赏
  • 举报
回复
你这2句就不是一个作用,上面一句Cells(3).Value 这是给单元格赋值,如果你单元格本来就有值的话这句就用不着了 下面的这tooltiptext=才是给弹出提示语赋值
lilunlil 2017-05-20
  • 打赏
  • 举报
回复
引用 2 楼 wtuqi 的回复:
你说对了现实不行就是不行e.RowIndex是选中焦点行索引,而你应该用的是控件的ToolTipText属性
我听你的建议,用了tooltiptext属性,但关于这个属性,有一点是真心没搞懂。
DataGridView.ShowCellToolTips = True 的情况下, 单元格的 ToolTip 可以表示出来。对于单元格窄小,无法完全显示的单元格, ToolTip 可以显示必要的信息。
(网上抄录) 上面这句话搞不懂,比如单元格的 DataGridView1.Rows(3).Cells(3).Value =“100空”& Space(100) &“格” 同时: DataGridView1.Rows(3).Cells(3).ToolTipText = e.ColumnIndex.ToString() + ", " + e.RowIndex.ToString() 那么当我将鼠标停留在3,3单元格时,会显示哪句代码呢? 实际测试会显示100个空格那句,那我想达到的效果却是第二句代码,请指教。

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧