我想咨询一下在Visual Studio 2015中非常罕见的东西。我一直在准备Windows窗体应用程序。在该应用程序中,我在Form上放置了一个文本框,并将其ReadOnly属性设置为True。然后,我启动了应用程序。起初,由于ReadOnly属性,文本框不接受任何字母或数字,但经过一段时间后,它开始接受字母和数字,尽管它的ReadOnly属性。
然后,我用一个新文本框更改了文本框,但是在一段时间之后它又做了同样的事情。我无法理解这种情况以及为什么我遇到这样一个有趣的问题。你们中的任何一个人之前都遇到过类似的问题,我想知道你们是如何解决它的。
答案 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");
}
然后在该异常上放置一个断点。每当该属性变为true时,它就会破坏并让你进入该断点。然后你可以调用Call stack,哪个bugger正在修改只读标志。
答案 1 :(得分:0)
您可以在代码中再次加载Form
。只是想一想,因为你在ReadOnly
之后设置了InitializeComponent()
属性。重新加载Form
并再次设置property
可能会导致问题。无论如何,这只是猜测。
答案 2 :(得分:0)
我找到了解决方案 我在运行(Windows + R)中键入%temp%清除了临时文件,一切恢复正常,现在它的ReadOnly属性