【问题标题】:Can't get program to read information in textbox无法让程序读取文本框中的信息
【发布时间】:2017-10-17 19:41:55
【问题描述】:

当我尝试让我的程序读取文本框字段中的一行输出时,我遇到了 Visual Basic 问题。

Private Sub txtConsole_TextChanged(ByVal sender As System.Object, ByVal e As EventArgs)
    If (txtConsole.Text.Contains("[download] 100.0%")) Then
        ProgressBar1.Increment(100)
    End If
End Sub

我认为一旦“[下载] 100.0%”出现在文本框中,代码将允许进度条出现在 100%,但它根本不起作用。

此程序是仅用于命令行的程序的 GUI,它将命令从 GUI 传递给该程序。目前,对于日志,我使用的是 StreamOutput,但我的编程知识非常有限。

【问题讨论】:

  • 这段代码不足以让我们重现问题,因为我们无法看到全貌。首先:向我们展示这段代码的位置(以什么方法),并请给我们一些来自文本框的示例输入(复制粘贴)。
  • 我不完全确定从哪里开始使用什么方法或提供什么样本,所以我将整个源代码粘贴在这里:link
  • “从哪里开始”??这段代码的实际位置如何? -- 现在我看到它位于TextChanged,我们可以排除代码没有运行。 编辑: 发现问题。见下文。
  • 该代码没有上下文 - 在哪里?请阅读How to Ask 并采取tour
  • 第 132 行。@Visual Vincent - 这是程序日志的输出:link - 第 21 行和/或第 38 行应适用于该代码

标签: vb.net user-interface textbox


【解决方案1】:

你错过了Handles clause

Private Sub txtConsole_TextChanged(ByVal sender As System.Object, ByVal e As EventArgs) Handles txtConsole.TextChanged

没有它txtConsole_TextChanged 只是一种常规方法。 Handles 子句将方法添加到指定事件(在本例中为 TextChanged)的事件处理程序列表中。

【讨论】:

  • 我在该行的末尾添加了“Handles txtConsole.TextChanged”,但程序仍然不会根据该输出日志中显示的信息向上移动进度条。你知道让这个进度条正常工作的更简单的方法吗?
  • @JRV:不是真的。你确定它总是说[download] 100.0%吗?根据您的日志,它似乎也显示[download] 100%。尝试在If-line 上添加断点,看看代码是否执行完毕。
猜你喜欢
  • 2013-04-21
  • 1970-01-01
  • 1970-01-01
  • 2014-04-05
  • 1970-01-01
  • 2022-09-30
  • 1970-01-01
  • 1970-01-01
  • 2018-03-21
相关资源
最近更新 更多