I wrote a function to dynamically add elements to the "Panel".
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 is UserControl, that haves property "AutoSize=true" on all components. This panel has got the AutoScroll property, so has got scrollbars. The problem is that the elements are added in different ways, depending on the position of the scrollbar. If the scrollbar is at the top, then all added as needed.
but if at the time of adding the scrollbar at the bottom, then add items going wrong
please tell me what I'm doing wrong and how to fix it? Thank you. sorry for bad english
You need to add style="overflow-y:scroll;" to the div tag. (This will force a scrollbar on the vertical).
Set Panel. AutoScroll = True and scrollbars will automatically appear whenever any controls in the panel fall outside its boundaries. You can also set the Panel's . Anchor properties so that it resizes with the form.
When placing the controls inside the panel, you have to compensate for the scroll position:
Basically, try using this line:
d.Location = new Point(0, panel1.AutoScrollPosition.Y + Point.Y);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With