我有一个使用我的代码动态创建的FlowLayoutPanel,我希望在加载和重新调整大小时将面板重新定位到我的屏幕中心,就像我能够使用我的标签一样。
问题是因为flp不在Form2.Designer.cs中,当我用与标签相同的方式调用它时出现错误。
错误1' SCA_Up_Tool.Form2'不包含' flp'的定义没有扩展方法' flp'接受类型' SCA_Up_Tool.Form2'的第一个参数。可以找到(你错过了使用指令或程序集引用吗?)
public partial class Form2 : Form
{
public Form2(List<IPAddress> addresses)
{
InitializeComponent();
FlowLayoutPanel flp = new FlowLayoutPanel();
flp.AutoScroll = true;
flp.FlowDirection = FlowDirection.TopDown;
flp.Location = new System.Drawing.Point(12, 67);
flp.AutoSize = false;
flp.Height = 600;
flp.Width = 1110;
flp.WrapContents = false;
}
}
private void Form2_Load(object sender, EventArgs e)
{
this.label1.Left = (this.ClientSize.Width - this.label1.Width) / 2;
this.flp.left = (this.ClientSize.Width - this.flp.width / 2);
}
private void Form2_SizeChanged(object sender, EventArgs e)
{
this.label1.Left = (this.ClientSize.Width - this.label1.Width) / 2;
this.flp.left = (this.ClientSize.Width - this.flp.width / 2);
}
答案 0 :(得分:4)
将其移至外部范围。如果需要访问方法之外的变量,那么它不应该是局部变量。推广本地实例字段。
public partial class Form2 : Form
{
private FlowLayoutPanel flp = new FlowLayoutPanel();
public Form2(List<IPAddress> addresses)
{
InitializeComponent();
flp.AutoScroll = true;
flp.FlowDirection = FlowDirection.TopDown;
flp.Location = new System.Drawing.Point(12, 67);
flp.AutoSize = false;
flp.Height = 600;
flp.Width = 1110;
flp.WrapContents = false;
}
}