【问题标题】:Can't turn combobox value into a string - Visual Basic无法将组合框值转换为字符串 - Visual Basic
【发布时间】:2015-02-20 22:32:27
【问题描述】:

我正在尝试使用组合框作为解析 IP 地址的输入,但我遇到了问题。当用户从列表中选择他们想要的 IP 并单击“测试”时,它似乎无法识别组合框的输入。如果我用文本框替换组合框,它可以正常工作 - 出于某种原因,它不会接受组合框输入,即使它和文本框的结果完全相同相同,它们都是简单的字符串。

Dim ip As String = combobox1.Text
    _sock = New TcpClient(ip, port)

如果我将'combobox1.Text'改为textbox1.Text,然后在textbox1中手动输入IP,它不起作用!我也试过'combobox1.Text.ToString',但没有奏效。这非常令人沮丧,因此我们将不胜感激,谢谢。

【问题讨论】:

  • 您没有使用SelectedItemSelectedText 属性是否有原因?
  • 当使用 'selectedItem' 属性时,它返回完全相同的东西。 'selectedText' 属性简单返回:'无法建立连接,因为目标机器主动拒绝它'
  • 您是否使用调试器查看过实际值,因为我怀疑SelectedText 属性返回“无法建立连接,因为目标机器主动拒绝它”
  • 嗯,就是这么说的。我是新手,请问您能告诉我如何使用调试器找到实际值吗?
  • 正常的做法是设置断点,并使用监视窗口...

标签: vb.net combobox ip resolve


【解决方案1】:
'Returns the Text that has been selected:
Dim ip As String = combobox1.SelectedItem

'Returns the Index of the selected Item (ascending from 0):
Dim ip As String = combobox1.SelectedIndex

【讨论】:

  • 开启Option Strict
  • 这两个都返回选定项的文本或索引。如果您尝试在组合框的顶行中键入内容,则两者都返回“”,因为当前未选择任何索引,但 .Text 返回键入到其中的文本。所以,问题可能不是你想的那样:/
  • 虽然这段代码 sn-p 可以解决问题,但including an explanation 确实有助于提高帖子的质量。请记住,您是在为将来的读者回答问题,而这些人可能不知道您提出代码建议的原因。
【解决方案2】:

好的,我想通了 - 组合框的数据源中的值取自文本文件,其中字符串的每个部分取自不同的行。因此,实际上不是 192.186.1.75(例如),而是 VbCrLf + 192.186.1.75,这就是导致错误的原因。我想我的下一个问题是,有人知道如何阻止吗?

编辑 - 没关系,它现在已修复! 谢谢大家的帮助:)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-11-06
    • 1970-01-01
    • 1970-01-01
    • 2021-11-26
    • 2011-12-04
    • 1970-01-01
    • 1970-01-01
    • 2017-01-18
    相关资源
    最近更新 更多