Pregunta

Tengo una forma de ganar con 2 vistas de árbol. mi vista de árbol izquierda se está cargando con datos de un servidor de anuncios que se está cargando haciendo clic en un botón. Esto desencadena mi trabajo en segundo plano, que recupera mis datos y construye mi árbol.

Ahora, mientras hago esto, estoy desactivando el control de vista de árbol y mostrando un cuadro de imagen con un gif animado. Entonces, cuando mi trabajador de fondo ha terminado, habilito mi vista de árbol y oculto mi cuadro de imagen.

Entonces, lo que quiero hacer es que el cuadro de imagen permanezca en el centro de la vista de árbol. ambas vistas de árbol están en un contenedor dividido. Entonces, ¿tal vez necesito obtener los bordes de esos paneles? Entonces, cuando cambia el tamaño del formulario, mi cuadro de imagen se mantiene muy bien en el centro de la vista de árbol.

¿Fue útil?

Solución

Cree un panel con el mismo tamaño y ubicación de su vista de árbol. Agregue esta vista de árbol en el panel y configúrela en DockStyle.Fill . Agregue su imagen al panel y establezca el ancla en AnchorStyles.None .

this.panel1.Controls.Add(treeView2);
this.panel1.Controls.Add(pictureBox1);

this.treeView2.Dock = DockStyle.Fill;
this.pictureBox1.Anchor = AnchorStyles.None;

El estilo de ancla AnchorStyles.None mantendrá su cuadro de imagen en el centro del panel. Establezca su cuadro de imagen frente a su vista de árbol. Una vez que termine su procesamiento, simplemente oculte el cuadro de imagen.

Otros consejos

No está claro cómo configura su formulario, pero desea poner la lógica en el evento Resize del formulario o en el evento TreeView Resize.

Cuando se cambia el tamaño de ambos, coloque la imagen en la ubicación = a mitad del TreeView, menos la mitad del ancho de su imagen, repita para la altura.

OnFormResize()
{
  Point ul = new Point((Form.ClientRectangle.Width - pictureBox1.Width) / 2,
      (Form.ClientRectangle.Height - pictureBox1.Height) / 2);
  pictureBox1.Location = ul;
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top