2009-03-25 2 views
2

У меня возникли трудности с отображением нескольких (до 5) графических ящиков сверху друг друга, но они могут видеть их все. Появятся только первые и последние. Я показываю их снизу вверх, правильно устанавливаю их расположение и используя функцию BringToFront(). Есть ли у кого-нибудь решение (если оно есть)? Спасибо за помощь!PictureBoxes and Zorder [.NET]

ответ

2

Не уверен, в чем проблема; следующий код добавляет 5 уложенных PictureBox es в форму и настраивает их так, чтобы они были все видны.

private void AddStackedPictureBoxes() 
{ 
    for (int i = 0; i < 5; i++) 
    { 
     PictureBox pb = new PictureBox(); 

     pb.BackColor = Color.FromArgb(i * 50, i * 50, i * 50); 
     pb.BorderStyle = BorderStyle.FixedSingle; 

     pb.Location = new Point(i * 10, i * 10); 
     pb.Size = new Size((5 - i) * 20, (5 - i) * 20); 

     Controls.Add(pb); 

     pb.BringToFront(); 
    } 
} 

Возможно, это даст вам некоторое представление о том, почему у вас возникают проблемы.

Например, если вы вызываете BringToFront(), прежде чем элемент управления будет добавлен в форму, это не будет иметь никакого эффекта.

+0

спасибо, проблема в том, что я добавил их * после * использования BringToFront() ... до сих пор не реализовал (плохая привычка от VS Form Desinger - установить все свойства, затем добавить в панель/форму и т. Д.) – 2009-03-25 20:17:36

+0

Вам также необходимо убедиться, что ваши изображения добавлены в один элемент управления. Я сходил с ума, задаваясь вопросом, почему картинка, добавленная в основную форму, не попадет под рамку с картинкой, добавленную в панель. Упс! – ashes999

0

Обязательно установите цвет фона прозрачным на каждом из них.

и, как сказал Даниэль, BringToFront() работает только в том случае, если элемент управления уже находится на форме.

+0

хорошо, я не знаю, зачем мне это делать (с прозрачным цветом). Я рисую изображения без прозрачных областей/областей. – 2009-03-25 20:42:05

+0

Ну, я предположил, что вы их складываете так, чтобы иметь многослойный эффект. –

Смежные вопросы