如何解决从Windows窗体中删除一个控件,并调整其他控件使其适合
| 我有一个Windows Form应用程序,可以通过单击按钮将用户控件添加到其中。 我也可以一次选中一个控件,然后单击删除按钮来删除它。 一切正常,但是如果我添加三个控件并删除第二个控件,则窗体上剩余的两个控件之间会有一个缝隙。我想让所有剩余的控件向上移动以填补空白。 像这样: //添加三个控件,我们有: 控制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吗?
, 要添加控件,只需执行以下操作:
public void AddControl(ControlToAdd item)
{
item.Dock = DockStyle.Top;
this.Controls.Add(item);
}
要删除一个控件只需Dispose
!其余所有控件将向上滑动!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。