【发布时间】:2011-05-31 15:18:40
【问题描述】:
我有一个 Windows 窗体应用程序,我可以通过单击按钮向其中添加用户控件。 我也可以通过选择它并单击删除按钮一次删除一个控件。 一切正常,但如果我添加三个控件并删除第二个控件,则窗体上剩余的两个控件之间会存在间隙。我想让所有剩余的控件向上移动以填补空白。
像这样:
//添加三个控件,我们就有了:
控制1
控制2
控制3
//删除Control2,我们现在有了这个:
控制1
控制 3
//我想要的是这样的:
控制1
控制3
这是我尝试过的方法,但它不起作用
private void btQuestionDelete_Click(object sender, EventArgs e)
{
bool adjustMode = false;
int height = 0;
foreach (Control c in this.tpQuestions.Controls)
{
if (c is QuestionControl)
{
if (adjustMode)
{
int moveUpBy = c.Top - height;
c.Top = moveUpBy;
c.Parent.Refresh();
}
else
{
QuestionControl q = (QuestionControl)c;
if (q.IsSelected)
{
this.tpQuestions.Controls.Remove(c);
adjustMode = true;
height = q.Height;
}
}
}
}
}
【问题讨论】:
-
也许你想看看 flowLayoutPanels ?
-
谢谢。在 FlowLayoutPanel 中添加和删除控件使生活变得更加轻松。如果您将您的评论作为答案,我会接受。