2017-09-14 118 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`這不是很準確後,又回到了正常,現在它的只讀屬性

相關問題