Elemento do painel dinâmico adicionando e barras de rolagem

screvi uma função para adicionar dinamicamente elementos ao "Painel"

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, que possui a propriedade "AutoSize = true" em todos os componentes. Este painel possui a propriedade AutoScroll, assim como as barras de rolagem. O problema é que os elementos são adicionados de maneiras diferentes, dependendo da posição da barra de rolagem. Se a barra de rolagem estiver na parte superior, todas serão adicionadas conforme necessári

mas, no momento de adicionar a barra de rolagem na parte inferior, adicione itens com erro

Por favor, diga-me o que estou fazendo de errado e como corrigi-lo? Obrigado. desculpe pelo inglês ruim

questionAnswers(2)

yourAnswerToTheQuestion