【问题标题】:VB Function Not ExecutingVB函数未执行
【发布时间】:2013-09-10 17:01:14
【问题描述】:

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

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

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

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

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

编辑:

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

【问题讨论】:

  • 如果数字仅包含从09 的数字,Val 函数应该如何知道必须转换十六进制数字?试试这个:Dim c As Color = (New System.Web.UI.WebControls.WebColorConverter()).ConvertFromString("#0C1722")
  • 这是我后来遇到的一个问题。我用了 "b = Val("&H" & hexString.Substring(5, 2))

标签: vb.net function


【解决方案1】:

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

Visual Studio Breakpoint Warning

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

当所有其他方法都失败时,重新启动计算机,启动项目并清理/重建,一切都会好起来的。

【讨论】:

  • @JacobGoulden 对,现在调试器正在使用的代码与应用程序正在运行的代码不同,并且不会执行该函数。尝试我提供的步骤,它应该可以解决问题...如果这不起作用,请删除您的断点并在您调用该函数(不在其中)时放置另一个断点,然后会出现一个弹出窗口,询问您是否要请改用此代码...我相信您单击“是”,它将起作用。
  • 等等,从文件中删除所有断点使代码工作。非常感谢你救了你一命!
猜你喜欢
  • 1970-01-01
  • 2020-07-16
  • 2013-11-29
  • 2016-09-30
  • 2015-08-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-09
相关资源
最近更新 更多