将表单存储在列表中,并在c#事件中更改其位置
本文关键字:事件 位置 存储 表单 列表 并在 | 更新日期: 2023-09-27 18:16:06
我继承了很多代码,并且遇到了以下问题:当主表单移动时,让位于"主表单"上特定位置的表单移动。
现在,我有一个列表存储每个表单,将躺在我的表单,和masterForm.ResizeEnd事件处理程序。在事件处理程序中,我尝试遍历列表并将.location属性设置为masterForm.location+常量。但这行不通。我试过各种各样的方法,但都没用。
代码:public List<Form> openForms=new List<Form>(1);
private void addForm(Form argument)
{
openForms.Add(argument);
}
private void masterForm_ResizeEnd(object sender, System.EventArgs e)
{
for(int i=0; i<openForms.Count; i++)
openForms[i].Location = new system.drawing.point(this.location.x+constant, this.location.y+constant);
}
它应该工作,我看你的代码没有明显的错误。尝试用
设置位置openForms[i].Invoke((MethodInvoker)delegate{openForms[I].Location = new system.drawing.point(this.location.x+constant, this.location.y+constant);});