2 回答

TA貢獻1843條經驗 獲得超7個贊
你可以這樣做
var count = panel2.Controls.Count;
MsgItem item = new MsgItem("testing");
item.Top = count == 0 ? 10 : (panel2.Controls[count - 1].Bottom + 10);
panel2.Controls.Add(item);
對于您的原始代碼,即
int an = 10;
private void Incoming_Click(object sender, EventArgs e)
{
MsgItem item = new MsgItem("testing");
item.Top = an;
an = item.Top + item.Height + 10;
panel2.Controls.Add(item);
}
解決方案是跟蹤面板的滾動
private void panel2_Scroll(object sender, ScrollEventArgs e)
{
switch (e.ScrollOrientation)
{
case ScrollOrientation.VerticalScroll:
var change = e.NewValue - e.OldValue;
an -= change;
break;
}
}
因此,對于布局場景,建議使用TableLayoutPanelorFlowLayoutPanel
- 2 回答
- 0 關注
- 186 瀏覽
添加回答
舉報