2017-09-14 6 views
0

Ich möchte Sie etwas konsultieren, das in Visual Studio 2015 sehr ungewöhnlich ist. Ich habe eine Windows Form Application vorbereitet. In dieser Anwendung habe ich ein Textfeld in ein Formular eingefügt und seine ReadOnly-Eigenschaft auf True gesetzt. Dann habe ich die Anwendung gestartet. Zunächst akzeptierte das Textfeld aufgrund der ReadOnly-Eigenschaft keine Buchstaben oder Zahlen, aber nach einiger Zeit akzeptierte es trotz seiner ReadOnly-Eigenschaft Buchstaben und Zahlen.C# Textfeld ReadOnly Eigenschaft funktioniert manchmal, manchmal funktioniert nicht

Dann änderte ich die Textbox mit einer neuen, aber es tat wieder dasselbe nach einiger Zeit. Ich kann dieses Studium nicht verstehen und wieso ich auf ein so interessantes Problem gestoßen bin. Hat jemand von euch schon einmal mit einem ähnlichen Problem konfrontiert und ich würde gerne wissen, wie Sie es gelöst haben.

+1

'nach einigen Time' Dies ist nicht sehr genau. Fügen Sie einige Schritte hinzu, um das genaue Verhalten zu reproduzieren. – Blacktempel

+0

Können Sie den Code um das Textfeld herum bereitstellen, z. B. überall dort, wo die ReadOnly-Eigenschaft referenziert wird, ihre Einrichtung/Erstellung aus der Designer-Datei usw.? Dies wird uns eine bessere Vorstellung davon geben, was da ist und was vielleicht vor sich geht. Haben Sie irgendwelche Timer aktiv, die die Eigenschaft ändern könnten, usw.? – DiskJunky

+0

'nach einiger Zeit 'möglicherweise ändern Sie seine Readonly-Eigenschaft programmgesteuert –

Antwort

0

Nie zuvor gesehen, aber was Sie tun können, um es zu debuggen, ist das Hinzufügen eines Handlers zum TextBox.ReadOnlyChanged-Ereignis. Etwas wie dieses:

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

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

Und dann einen Haltepunkt auf diese Ausnahme setzen. Immer wenn diese Eigenschaft in "wahr" geändert wird, wird sie unterbrochen und auf diesen Haltepunkt gesetzt. Dann können Sie vom Call-Stack aus untersuchen, welcher Bug das schreibgeschützte Flag modifiziert.

0

Beliebig, dass Sie die Form wieder in Ihrem Code laden. Denken Sie nur daran, weil Sie ReadOnly Eigenschaft nach InitializeComponent() festgelegt haben. Ein erneutes Laden des Form und erneutes Setzen des property könnte das Problem verursachen. Wie auch immer, das ist einfach wahnsinnig.

+0

Danke für deinen Kommentar @Weissu, aber das Problem ist immer noch am Laufen. Sie werden nicht glauben, dass ich 3 andere Textfelder habe und sie haben die gleiche ReadOnly-Eigenschaft, aber während diese 3 Textfelder gut funktionieren. Der andere macht mich immer verrückt und akzeptiert Briefe. Vielleicht sollte ich seinen Namen komplett ändern –

0

fand ich die Lösung I durch Eingabe von% temp% in Run (Windows + R) temporären Dateien gelöscht und alles normal kommt zurück, jetzt seine Readonly-Eigenschaft

Verwandte Themen