自从我从 VS 2010 更新后,我就无法从默认的 Visual Basic 编程环境中的 datarow.item 获取数据提示。刚走了!我已经忍受了,因为人们还能做什么?经过多次搜索,我没有找到答案。由于这种明显的“改进”,我的调试生活质量下降了很多。数据提示如下图所示,问题在别处。
下图是在 Debug模式下停止以检查变量值的相同代码的 4 个不同屏幕截图的组合。唯一的区别是鼠标悬停位置不同(以红色突出显示)。
图片部分 1 和 2 显示了变量及其值,这是为了证明 datagrid.row 和 findrow.row 都在范围内!
图像第 3 部分显示鼠标悬停在 RowG.cell 的值上,并清楚地显示了该单元格的值。
图像第 4 部分显示了唯一可用于显示数据行的数据行的智能感知,从那里我可以公开项目数组并查看所有项目的值。然而,将鼠标悬停在“项目”或“.tostring”上不会产生进一步的智能感知数据提示。
可用于网格值的完全相同的数据提示可用于 VS 2010 和 2008 和 2005 中的 datarow.item !!!自 2012 版本以来,唯一可用的智能感知是公开项目数组并遍历行,记住哪些列号与哪些名称对应,以便不便地抽查项目值。
问题是我的 datarow.item 数据提示隐藏在哪里?是否有我未启用的特定设置?还是这个功能消失了?
编辑 1:对于阅读本文的人来说,一个更重要的问题是,您能否复制 datarow.item 的数据提示问题? 即使您不知道解决方案,如果这是一个孤立于我的问题,或者很少或全部,也可以量化。 请包括您正在使用的 VS 版本。我已经在这个问题上投入了几个小时,非常感谢一些帮助。
编辑 2:根据 Engerlost 在评论中的要求测试代码。
将以下代码粘贴到替换 Form1_Load 的新 Win Form 项目中,然后运行项目,这将充分显示问题。
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
'New data table
Dim Test_Data_Table As New DataTable
'Add one column
Dim A() As DataColumn = {Test_Data_Table.Columns.Add("TestCol")}
'Add row 1
Dim dsNewRow As DataRow = Test_Data_Table.NewRow()
dsNewRow.Item("TestCol") = "Row1"
Test_Data_Table.Rows.Add(dsNewRow)
'Add row 2
dsNewRow = Test_Data_Table.NewRow()
dsNewRow.Item("TestCol") = "Row2"
Test_Data_Table.Rows.Add(dsNewRow)
For Each row As DataRow In Test_Data_Table.Rows
Dim ShowTestColContent = row.Item("TestCol").ToString
Stop
'On the stop, debug will have a 'Row1' value for ShowTestColContent variable
'In VS 2010 and earlier hovering the mouse over the row.item produced a datatip with the value as well
'Since VS 2012 only the row shows an intellisence of the datatrow item array but nothing else
Next
End Sub
编辑 3:这是该问题的进一步教授,相同的代码放置在一个新的 winform 应用程序中,一个在 VS 2010 SP1 中,一个在 VS 2013 Update 4 中。将光标放在 VS 2010 中的项目上会产生数据提示。在 VS 2012 和 2013 中,此功能缺失且不显示任何内容。然而,如第一张图所示,VS 2013 安装中显示了数据提示,用于普通变量和 datagridview 行。问题在别处!
Engerlost 在评论中进一步支持了这一点。
最佳答案
我可以在 VS 2010 和 VS 2013 上确认此行为。悬停时 item
在调试 con 2010 时,它同时显示属性信息和值。左边是属性,右边是值(文本可视化工具)。
Hovewer,在 VS 2013 上悬停 item
只显示悬停在 row.
给出属性信息。
最后在两个版本 ShowTestColContent
显示值 "Row1"
Visual Studio 2010 Ultimate
Version: 10.0.40219.1 SP1Rel
和
Visual Studio 2013 Community
Version: 12.0.31101.00 Update 4
新测试:
Visual Studio 2015 Community
Version: 14.0.23107.0 D14REL
我尝试了不同的调试/编译选项,但似乎没有任何效果。我可以上传的图像与OP相同。
2016 年 4 月 3 日编辑
嗯,我认为它是固定的。
Vainilla VS 2015 社区更新 2 (14.0.25123.00)
光标是黑线所在的位置(在项目上)。
但是无法在 2015 Update 1 上进行测试。
关于vb.net - 在 VS 2012 及更高版本中缺少 datarow.item 的智能感知数据提示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30113725/