risposta
Si tratta di un bug nel renderer di "sistema", dettagli in this bug report.
risposta di Microsoft dà una soluzione molto semplice:
1) Creare una sottoclasse di ToolStripSystemRenderer
, ignorando OnRenderToolStripBorder
e che lo rende un no-op:
public class MySR : ToolStripSystemRenderer
{
public MySR() { }
protected override void OnRenderToolStripBorder(ToolStripRenderEventArgs e)
{
//base.OnRenderToolStripBorder(e);
}
}
2) Usare che renderer per la vostra ToolStrip:
toolStrip3.Renderer = new MySR();
+1, ma ho modificato la risposta in realtà * includendo * la risposta piuttosto che solo indicandola. StackOverflow dovrebbe essere indipendente, i collegamenti esterni possono marcire. Sono una buona aggiunta, ma il contenuto principale dovrebbe essere su SO stesso. –
Perché si sta spegnendo la mia applicazione? – RickInWestPalmBeach
Si potrebbe desiderare di aggiungere il tipo di controllo per evitare di confine mancanti sul ToolStripDropDownMenu
/etc. (Poiché ereditato da ToolStrip
, inizia stesso uso renderer personalizzato automaticamente):
protected override void OnRenderToolStripBorder(ToolStripRenderEventArgs e)
{
if (e.ToolStrip.GetType() == typeof(ToolStrip))
{
// skip render border
}
else
{
// do render border
base.OnRenderToolStripBorder(e);
}
}
saltata ToolStripDropDownMenu
confine non è così notevole durante l'utilizzo ToolStripSystemRenderer
ma diventare reale pugno nell'occhio con ToolStripProfessionalRenderer
.
Inoltre, l'impostazione di System.Windows.Forms.ToolStripManager.Renderer = new MySR();
potrebbe essere utile se si desidera che tutte le istanze ToolStrip
in tutto l'anno utilizzino MySR
per impostazione predefinita.
Come hai ottenuto lo sfondo bianco? Questo non è standard. –