Вопрос

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

Это было полезно?

Решение

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

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() до того, как элемент управления будет добавлен в форму, это не будет иметь никакого эффекта.

Другие советы

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top