VB函数不执行

时间:2013-09-10 17:01:15

标签: vb.net function

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

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

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

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

即使函数的作用域设置为“公共”

,也会发生这种情况

编辑:

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

1 个答案:

答案 0 :(得分:2)

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

Visual Studio Breakpoint Warning

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

当所有其他方法都失败时,重新启动计算机,启动项目&清洁/重建,一切都应该没问题。