Динамическое добавление элементов панели и полосы прокрутки

Я написал функцию для динамического добавления элементов в «Панель».

public int State;        
public Point Point = new Point(0, 0);
public void DialogAdd(string message, string author)
        {
            var d = new DialogMessage();
            if(State == 0)
            {
                d.BackColor = Color.FromArgb(255, 237, 241, 245);
                State = 1;
            }
            else
            {
                State = 0;
            }


            d.Controls["name"].Text = author;
            d.Location = new Point(0, Point.Y);
            d.Controls["msg"].Text = message;
            Point.Y += d.Size.Height;
            Controls["panel1"].Controls.Add(d);

        }

DialogMessage - это UserControl, который имеет свойство "AutoSize = true" для всех компонентов. Эта панель имеет свойство AutoScroll, поэтому есть полосы прокрутки. Проблема в том, что элементы добавляются по-разному, в зависимости от положения полосы прокрутки. Если полоса прокрутки находится сверху, то все добавляется по мере необходимости.

но если во время добавления полосы прокрутки внизу, то добавляются неправильные элементы

подскажите пожалуйста что я делаю не так и как это исправить? Спасибо. Извините за плохой английский

Ответы на вопрос(1)

Ваш ответ на вопрос