c#Textbox ReadOnly属性有时可以工作,有时不起作用

时间:2017-09-14 11:20:58

标签: c# properties textbox readonly

我想咨询一下在Visual Studio 2015中非常罕见的东西。我一直在准备Windows窗体应用程序。在该应用程序中,我在Form上放置了一个文本框,并将其ReadOnly属性设置为True。然后,我启动了应用程序。起初,由于ReadOnly属性,文本框不接受任何字母或数字,但经过一段时间后,它开始接受字母和数字,尽管它的ReadOnly属性。

然后,我用一个新文本框更改了文本框,但是在一段时间之后它又做了同样的事情。我无法理解这种情况以及为什么我遇到这样一个有趣的问题。你们中的任何一个人之前都遇到过类似的问题,我想知道你们是如何解决它的。

3 个答案:

答案 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属性