Ho un modulo che sto utilizzando utilizzando ShowDialog
che contiene un paio di caselle di testo, etichette e un pulsante. Il problema che sto avendo è che le caselle di testo vengono disegnate prima del modulo stesso e gli altri controlli sono disegnati.I controlli non vengono disegnati allo stesso tempo
sto override del metodo OnPaint
non sono sicuro se questo potrebbe essere la causa del problema:
protected override void OnPaint(PaintEventArgs e)
{
ControlPaint.DrawBorder(e.Graphics, e.ClipRectangle, Color.Black, ButtonBorderStyle.Solid);
base.OnPaint(e);
}
E 'solo un leggero ritardo, ma è visibile e fastidioso. Grazie.
Il modulo è doppio bufferato a proposito.
MODIFICA: Ho individuato il problema per il fatto che il modulo non ha uno FormBorderStyle
. Con FormBorderStyle
impostato su Sizable
, questo problema non si verifica. Tuttavia, tieni presente che avere lo FormBorderStyle.None
come stile del mio bordo è necessario, quindi non ho ancora trovato una soluzione.
potete inserire tutto il codice rilevanti relative al disegno delle etichette, caselle di testo e pulsanti? – JosephGarrone
In realtà, l'elemento parent chiama il metodo di rendering di ogni controllo figlio prima di eseguire il rendering. Questo è il comportamento predefinito. Può essere che tu possa mostrare il dialogo una volta completato il caricamento del modulo. – Saravanan
Tutti i controlli sono stati aggiunti tramite il designer di Visual Studio, quindi non ho toccato il disegno di questi controlli. –