亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

顯示垂直滾動條時控件位置發生變化

顯示垂直滾動條時控件位置發生變化

C#
MM們 2023-07-09 17:27:28
一旦顯示面板的垂直滾動條,控件的位置就會發生變化。AutoScroll中的屬性Panel已啟用代碼: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);}當滾動條顯示時,控件的位置MsgItem太遠 這里是一個示例,它看起來如何 查看問題
查看完整描述

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


查看完整回答
反對 回復 2023-07-09
?
茅侃侃

TA貢獻1842條經驗 獲得超21個贊

使用 FlowLayoutPanel 代替 Panel,并且不必設置 Position



查看完整回答
反對 回復 2023-07-09
  • 2 回答
  • 0 關注
  • 186 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號