2017-09-14 104 views
0

我想咨询一下在Visual Studio 2015中非常不常见的东西。我一直在准备Windows窗体应用程序。在那个应用程序中,我在窗体上放置了一个文本框,并将其ReadOnly属性设置为True。然后,我开始申请。起初,由于ReadOnly属性,文本框没有接受任何字母或数字,但在一段时间后,尽管它的ReadOnly属性开始接受字母和数字。c#Textbox ReadOnly属性有时可以工作,有时不起作用

然后,我改变了一个新的文本框,但它在一段时间后又做了同样的事情。我无法理解这种困惑以及为什么我面对这样一个有趣的问题。有没有人遇到过类似的问题,我想知道你是如何解决它的。

+1

'。添加一些步骤来重现确切的行为。 – Blacktempel

+0

您可以围绕文本框提供代码,例如ReadOnly属性被引用的任何地方,从Designer文件中设置/创建等等。这会给我们更好的想法,以及可能发生的事情。你有任何计时器活跃,可能会改变财产等? – DiskJunky

+0

'经过一段时间'可能你正在以编程方式更改其只读属性 –

回答

0

以前从未见过这种情况,但您可以调试它的方法是向TextBox.ReadOnlyChanged事件添加处理程序。类似这样的:

public Form1() 
{ 
    InitializeComponent(); 
    roBox.ReadOnlyChanged += roBox_ReadOnlyChanged; 
} 

private void roBox_ReadOnlyChanged(object sender, EventArgs e) 
{ 
    throw new Exception("who did this"); 
} 

然后在该Exception上放置一个断点。无论何时该属性变为真,它都会断裂并将您置于该断点上。然后,您可以从调用堆栈调查哪个bug正在修改只读标志。

0

在代码中再次加载Form的任何可能性。只是想着这个,因为你在InitializeComponent()之后设置了ReadOnly财产。重新加载Form并再次设置property可能会导致此问题。无论如何,这只是猜测。

+0

感谢您对@Weissu的评论,但问题依然存在。你不会相信我有3个其他文本框,并且它们具有相同的ReadOnly属性,但是这3个文本框运行良好。另一个总是让我疯狂并接受信件。也许我应该完全改变它的名字 –

0

我找到了解决办法 我在运行(的Windows + R)输入%temp%,清除临时文件和一切一些time`这不是很准确后,又回到了正常,现在它的只读属性

相关问题