2016-08-04 114 views
-1

这是一个简单但很奇怪的问题。我有一个应用程序使用设置来创建一个字符串,然后将其放入一个富文本框中。听起来很简单吧?但由于一些奇怪的原因,我得到了额外的换行符。简单的例子:vb.net中的奇怪字符串问题

如果我这样做:

head = "Some text :" + " some other text" 
richtextbox.AppendText(head) 

输出

Some text : some other text" 

如你所愿。但如果应用程序将执行以下操作:

my.settings.variable1 = " some other text" 
head = "Some text :" + my.settings.variable1 
richtextbox.AppendText(head) 

输出

Some text : 
some other text" 

即带有换行符我从来没有规定。这不是一个单词包装或标签问题,因为我已经尝试了太阳下的每种变体以消除这些可能性。有任何想法吗?

****编辑********

我已经缩小的原因,但仍然没有什么意义。原因是我用来提供部分字符串的设置。我的应用程序中的实际代码是:

head = "Your Server : " + My.Settings.Server + "....Bill#" + My.Settings.BinNo 

它以某种方式在my.settings.server之后放置换行符。但是,如果我有完全相同的行,但将代码更改为:

head = "Your Server : " + My.Settings.BinNo + "....Bill#" + My.Settings.BinNo 

我不再看到问题。奇怪,但进步。仍然无法弄清楚为什么。两者都是字符串变量,两者都是相同的长度....

+1

我刚刚尝试过你所描述的东西,我没有看到虚假的换行符,正如人们所期望的那样。如果你用一个'Button'和'RichTextBox'创建一个新项目,并将代码放到'Click'事件处理程序中,它是否表现得如同它显然应该那样? – jmcilhinney

+0

我做了你的建议,果然,这个问题不会发生在一个干净的项目中。问题是,我不知道我的项目的其他部分可能会导致这个错误,所以我很难排除哈哈。为了清楚起见,我上面发布的代码被简化了。这是ACTUAL行的样子: – Rocks

+0

head =“Your Server:”+ My.Settings.Server +“.... Bill#”+ My.Settings.BinNo – Rocks

回答

0

发现问题。这很奇怪,但很简单。在将模块分配给服务器设置之前,模块中已经有一个递归的代码位。这是为了检查字符串的长度并将其填充到一定的长度。然而,它出错了,并在最后添加了一大堆空格,所以最后它不是一个换行符,它使它进入下一行,它是简单的文字换行和不可见的空格字符,将文本推送到正确的。简单但烦人的发现。谢谢你们的帮助