.net 调用ShowDialog()后,Clear()或simple上的Windows.Forms.TextBox出现意外行为,设置为string.Empty
在带有普通文本框的表单中,.net 调用ShowDialog()后,Clear()或simple上的Windows.Forms.TextBox出现意外行为,设置为string.Empty,.net,textbox,corruption,.net,Textbox,Corruption,在带有普通文本框的表单中,multiline==false,会出现预期的结果 将文本属性设置为“”或string.Empty或调用Clear()时。然而有一次 已对窗体调用ShowDialog(),将发生下面概述的行为。还要注意,奇怪的效果是相当直接的。如果定义并使用了加载事件处理程序,那么一旦调用它(响应正在调用的ShowDialog()),下面所示的无法解释的行为就是真的 textBox.Text = "fillWithSomething"; 调试器显示文本为:“fillWithSomet
multiline==false
,会出现预期的结果
将文本属性设置为“”或string.Empty或调用Clear()时。然而有一次
已对窗体调用ShowDialog(),将发生下面概述的行为。还要注意,奇怪的效果是相当直接的。如果定义并使用了加载事件处理程序,那么一旦调用它(响应正在调用的ShowDialog()),下面所示的无法解释的行为就是真的
textBox.Text = "fillWithSomething";
调试器显示文本为:“fillWithSomething”
调试器将文本显示为:两个无法打印的字符,textBox.Text.Length==2
textBox.Text = "fillWithNew";
调试器显示文本为:“fillWithNew”
调试器再次将文本显示为两个长度==2的不可打印字符
textBox.Text = "fillWithNew";
这是大型客户机应用程序的一部分。我做了一个简单的测试
(3.5和4.NETFramework)和相同的行为
任何关于什么可能会腐蚀什么的建议都应该是一个真正的问题
正前方手术?我在别处找不到这类问题的参考。我只是在表单上掉了一个文本框,我没有看到您看到的行为。
=”
和.Clear()
都将其设置为长度为0的空字符串。一定有别的东西干扰了 我可能错了,但是.Length
不是文本框的属性。你确定这不是一个扩展方法还是什么?把textBox.Text.tocharray()放到调试器表达式中,告诉我们你看到了什么。我的意思是textBox.Text.Length(打字错误)。使用ToCharray()时,生成的数组包含两个字符,值分别为charArray[0]==0xA808和charArray[1]==0x532I,结果相同。。。。我希望上面的失败模式对某些人来说可能很熟悉。奇怪的是,一个非空白、非空字符串的背对背赋值似乎可以正常工作。
textBox.Clear();