Napisałem funkcję dynamicznego dodawania elementów do "Panelu".Dynamiczne dodawanie elementów panelu i paski przewijania
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 to UserControl, które posiada właściwość "AutoSize = true" dla wszystkich komponentów. Ten panel ma właściwość AutoScroll, więc ma paski przewijania. Problem polega na tym, że elementy są dodawane na różne sposoby, w zależności od położenia paska przewijania. Jeśli pasek przewijania znajduje się u góry, wszystkie są dodawane w razie potrzeby.
ale jeśli w momencie dodawania paska przewijania na dole, następnie dodać elementy dzieje źle
proszę mi powiedzieć co robię źle i jak to naprawić ? Dziękuję Ci. Przepraszam za zły język angielski
Czy należy dodać informacje i znaczniki co API ty używasz? Domyślam się, że są to formularze systemu Windows, ale dotrzesz do większej liczby osób, jeśli po prostu dodasz odpowiedni tag. – dowhilefor
Tak, jest to forma okna. – Anton
Teraz, naprawię ten problem za pomocą FlowLayoutPanel, ale nadal chcę wiedzieć, co robię źle :) – Anton