1

我有一个函数可以将文本框中的十六进制字符串转换为颜色的整数值。问题是我无法执行该功能。

我在函数中有一个断点,在执行时显示以下内容:“没有可执行代码与此行关联”

即使我更换,也会发生这种情况:

cDialog.CustomColors = New Integer() {HexToColor1(tbHeader.Text)}

和:

   Dim cat As Integer
   cat = HexToColor1(tbHeader.Text)

这是部分代码的样子:

Dim cDialog As New ColorDialog()

 Private Sub btnHeader_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnHeader.Click
    cDialog.CustomColors = New Integer() {HexToColor1(tbHeader.Text)}
 End Sub


Private Function HexToColor1(ByVal hexString As String) As Integer
    Dim actColor As Integer
    Dim r, g, b As Integer
    r = 0
    g = 0
    b = 0
    If hexString.StartsWith("#") And hexString.Length = 7 Then
        r = Val(hexString.Substring(1, 2))
        g = Val(hexString.Substring(3, 2))
        b = Val(hexString.Substring(5, 2))
        actColor = r + g * 256 + b * 65536
    Else
        actColor = 0
    End If
    Return actColor
End Function

即使函数的范围设置为“公共”,也会发生这种情况

编辑:

我不知道这是否是调试器问题。从函数内部删除断点时,代码仍然不起作用。

4

1 回答 1

2

我认为这与您的代码无关。我有同样的问题,并使用这篇文章来解决我的问题:

Visual Studio 断点警告

  • 调试器使用的代码与应用程序正在运行的代码不同(这是我的问题)
  • 调试器使用的 pdb 文件与应用程序正在运行的代码不同
  • 应用程序正在运行的代码已经过优化,调试信息已被剥离。
  • 您在其中设置断点的代码尚未加载到进程中(假设上述内容不是罪魁祸首)
  • 如果要附加调试器,请注意它附加到的 .net 框架(当代码都是 .net 2.0 时,我使用 .net 4 时遇到了问题)
  • 您拥有的程序集也在 GAC 中。如果说您安装了程序以便调试它,但安装程序将 dll 放入 GAC,则可能会发生这种情况。
  • 删除引用并重新添加它。通常,当引用的项目不在解决方案中时会发生这种情况,VS 将从另一个项目的 bin 目录中复制 dll。当您尝试重新添加引用并且找不到项目时,您会知道这是问题所在
  • 删除程序中的所有断点

当一切都失败时,重新启动计算机,启动项目并清理/重建,一切都应该没问题。

于 2013-09-10T17:04:25.303 回答