Estoy intentando cambiar el orden z para un panel acoplado en el diseñador VS2010. Sin embargo, cada vez que guardo el diseñador, lo cierro y lo vuelvo a abrir, el orden z ha vuelto a ser como era antes de que lo cambiara.VS2010 Diseñador Orden Z
He intentado utilizar el esquema del documento y el menú contextual SendToBack, pero ambos se comportan de la misma manera. También noté que en otra solución en la que sí funciona, el archivo .designer.cs en realidad no cambia (asumí que el control de agregar orden dictaría z-order).
¿Hay alguna otra manera que puedo hacer esto? Realmente no quiero hacer esto en tiempo de ejecución ...
EDITAR
this.mainPanel.BackColor = System.Drawing.SystemColors.Control;
this.mainPanel.Controls.Add(this.pnlRangeSelector);
this.mainPanel.Controls.Add(this.headerAndFooterRowCounts);
pnlRangeSelector tiene Dock.Top headerAndFooterRowCounts tiene Dock.Right
cuando esto hace sin embargo, se lleva a headerAndFooterRowCounts todo el lado derecho de su panel principal, mientras que pnlRangeSelector toma la parte izquierda.
Eso me sugiere que el pnlRangeSelector no está correctamente en la parte posterior, como se supone que debe ser.
ACTUALIZACIÓN
int i = 0;
String output = String.Empty;
foreach (var c in this.mainPanel.Controls)
{
if (c == pnlRangeSelector) { output += "RangeSelector at : " + i.ToString() + "\r\n"; }
else if (c == this.headerAndFooterRowCounts) { output += "HeaderAndFooter at : " + i.ToString() + "\r\n"; }
i++;
}
MessageBox.Show(output);
parece que el fin es siempre RangeSelector = 0, HeaderAndFooter = 1. Incluso si llamo a la siguiente justo antes de esto:
this.mainPanel.Controls.SetChildIndex(this.pnlRangeSelector, 1);
this.mainPanel.Controls.SetChildIndex(this.headerAndFooterRowCounts, 0);
Los controles ya están agregados en el orden correcto (primero el panel de fondo, el panel de primer plano). – Ian
declarado o agregado a la colección? ¿Podrías publicar el código? –
Agregó el código de adición del diseñador. – Ian