vb.net - 在 VS 2012 及更高版本中缺少 datarow.item 的智能感知数据提示

标签 vb.net visual-studio

自从我从 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 版本。我已经在这个问题上投入了几个小时,非常感谢一些帮助。
Missing data tip example
编辑 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 行。问题在别处! VS 2010 showing datatip
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)

VS2015UP2

光标是黑线所在的位置(在项目上)。

但是无法在 2015 Update 1 上进行测试。

关于vb.net - 在 VS 2012 及更高版本中缺少 datarow.item 的智能感知数据提示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30113725/

相关文章:

vb.net - 将文件扩展名与程序相关联

visual-studio - 灾难性故障(来自 HRESULT : 0x8000FFFF (E_UNEXPECTED)) in visual studio 的异常

c# - 如何在 MS Visual Studio 2013 中创建数据库?

c++ - VC++中的一些错误

C++ g++和msvc之间的不同文件读/写时间

.net - VB.NET迭代器函数丢失局部变量

vb.net - 如何将文件复制到剪贴板并将其粘贴到其他位置?

vb.net - VS 2010 中的 DataGridView 单元格单击事件

c# - 如何在类中创建泛型方法?

javascript - "$"在 Visual Studio 中使用 jQuery 时未定义