2010-02-04 75 views
-1

我正在做一个简单的,当我的意思很简单,我的意思是简单。但是,无论如何,我有这个东西,这个人输入一个单词,它会预览一个文本文件。即使是文本阅读器,我也可以设置所有内容,但我在代码中遇到的异常情况是“if语句”。每当我在文本框中输入单词时,它将不会运行我想要的内容,而是直接转到else并显示错误消息。这是我的代码:VB.NET - 奇怪的字符串错误?

If mainText.Text = "book" Then 
     startProcess() 

    ElseIf mainText.Text = "greet" Then //Just there for testing.. 
     mainText.Text = "Hello there..." 
    Else 
     mainText.Text = "Please either enter a valid command." 
    End If 

现在我看着mainText.text,只见进入迎接命令时,值..

{System.Windows.Forms.TextBox,文本:迎接” & vbCrLf &“}

..我真的不明白为什么发生这种情况..所有我的其他程序工作正常。

谁能帮我解决这个问题!

感谢,

凯文

+0

我几乎不能理解你问的伴侣。你能澄清这个问题吗? – 2010-02-05 12:23:19

回答

0

它,当你打破它听起来像一个同步问题(多线程)的工作原理其实..可能是一些连接到你使用的计时器。 你能提供关于你的代码/逻辑的更多信息吗?

+0

所以它的工作原理是这样的..我有一个窗体和一个单一的文本框在它的屁股爸爸中间。我还有一个定时器运行来查看何时按下Enter键,以便它可以运行上面的操作,并显示返回的内容。这很简单.. – lab12 2010-02-05 12:05:46

+0

为什么使用计时器来检查输入密钥?你正在检查文本框中的回车键吗?如果是这样,只处理正常的文本框键盘事件(KeyDown,KeyUp或KeyPress) – 2010-02-05 21:57:13

+0

考虑到它只在断点处停止时才起作用,所以我认为定时器可能与不一致的结果有关。当你有克里斯提到的正常关键事件时,计时器也是完全不必要的。 – snarf 2010-02-05 22:48:56

1

是文本框中多行?单行文本框不应该允许这些字符。无论哪种方式,你可能只是修剪字符串。

Dim command As String = mainText.Text.Trim() 
If command = "book" Then 
    startProcess() 
ElseIf command = "greet" Then // Just there for testing.. 
    mainText.Text = "Hello there..." 
Else 
    mainText.Text = "Please either enter a valid command." 
End If 
+0

确定这是越来越weider ...是的,我的文本框是一个多行文本框,但是当我这样做时,它不完全解决问题。当我在问题上放置一个断点并继续它,它的工作!为什么不在没有断点或暂停的情况下工作? – lab12 2010-02-05 02:21:05

+0

顺便说一下,当我的输入键被按下进入上面的子分区时,我使用了一个计时器。 – lab12 2010-02-05 02:24:28

+0

您可能会考虑使用您当前的代码编辑问题,除非它看起来与我的相同。我没有测试过我发布的内容,尽管我可能应该这么说。 – snarf 2010-02-05 03:26:15