Ho un'applicazione C# WinForms abbastanza grande (larghezza) che utilizza uno System.Windows.Forms.Label
all'interno di un riquadro di selezione.Etichetta che scompare inavvertitamente dopo una certa lunghezza
A System.Timers.Timer
aggiorna la posizione Label
dopo un evento di spunta.
int new_X_location = (label.Location.X + distance_invariant) % modulo;
label.Location = new Point(new_X_location, label.Location.Y);
La funzionalità del tendone non è il problema, quando cambio campo Label.Text
, l'etichetta scompare!
string some_string = working_function_that_returns_string();
label.Text = some_string; //disappears!
Sembra essere limitata ad una lunghezza di circa 2100 caratteri o così quando la dimensione del carattere è grande (24pt
). Quando è più piccolo (10pt
) la stringa può essere molto più lunga (label.Text.Length >= 4200
).
string some_string = working_function_that_returns_string();
label.Text = some_string.SubString(0,2000); //it's still visibile here.
...
label.Text = some_string.SubString(0,2200) //it's not visible!
Non so se ha a che fare con le limitazioni di larghezza o limiti di dimensione dei caratteri
o un posizionamento larghezza di modulo.
. Il posizionamento è corretto con caratteri di dimensioni minori e stringhe più corte. Pertanto non si tratta di un errore di posizionamento.
La prego di inviare il codice e/o foto del tuo problema rilevante? – 3aw5TZetdf
Non usare mai System.Timers.Timer per fare qualsiasi cosa con un controllo. Impostare la proprietà CheckForIllegalCrossThreadCalls su true. –
Mi sto prendendo cura di questo con 'InvokeRequired' e' .Invoke() 'grazie. Non ci sono problemi al riguardo. –