【问题标题】:Label will not set when form loads表单加载时不会设置标签
【发布时间】:2013-02-09 19:46:19
【问题描述】:

我正在尝试将标签设置为注册表项的值,以便在用户加载表单时将标签设置为注册表项值。它没有设置,只是默认文本,没有找到密钥或发生错误。我得到了 Microsoft.VisualBasic.dll 中出现的“System.InvalidCastException”类型的第一次机会异常,作为即时窗口中的错误。

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    Dim readValue As String
    readValue = My.Computer.Registry.GetValue _
    ("HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Bohemia Interactive Studio\ArmA 2 OA", "KEY", Nothing)
    Label3.Text = readValue
End Sub

【问题讨论】:

    标签: .net visual-studio-2010


    【解决方案1】:

    先试试这个:

    MsgBox("值为" & readValue)


    只是为了检查它是否在那个“KEY”上。

    然后:
    添加这个:

    Dim bytes as Byte() = CType(readValue, Byte())
    str = BitConverter.ToString(bytes)
    label.Text = str
    

    【讨论】:

    • 要么该注册表项有问题,要么尝试放置一个调用该函数的按钮,只是为了测试目的。
    • 它说从“Byte()”类型到“String”类型的转换无效。
    • 是的,类似,11,42,29,23,24,54,65,56,75,57 等。我已将其更改为整数和字节,但错误相同。
    • 那么,让我理解一下,您需要从注册表中读取几个字节并将它们显示为文本?或将这些字节转换为字符串然后显示它???
    • 将其显示为文本。很抱歉对于这个误会。所以如果在我的注册表中我的键是 99,33,23,53,53,76,85,12 那么标签会说 99-33-23-53-53-76-85-12
    【解决方案2】:

    试试这个:

    readvalue = Encoding.Unicode.GetString(My.Computer.Registry.GetValue(".etc..",));
    

    【讨论】:

      猜你喜欢
      • 2010-10-12
      • 2011-02-10
      • 2013-03-04
      • 1970-01-01
      • 2012-01-19
      • 2018-03-16
      • 1970-01-01
      • 2016-08-30
      • 1970-01-01
      相关资源
      最近更新 更多