如何从Event函数更改动态创建的属性

本文关键字:动态 创建 属性 Event 函数 | 更新日期: 2023-09-27 18:17:48

我有一个FlowLayoutPanel被动态创建与我的代码,我想重新定位面板到我的屏幕的中心加载和调整大小,就像我能够做我的标签。

的问题是,因为flp不是在Form2.Designer.cs我得到一个错误,当我调用它相同的方式,我做了标签。

错误1 'SCA_Up_Tool。Form2'不包含'flp'的定义,也没有扩展方法'flp'接受类型为'SCA_Up_Tool '的第一个参数。可以找到Form2'(您是否缺少using指令或汇编引用?)

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);
    }

如何从Event函数更改动态创建的属性

把它移到外部作用域。如果需要访问方法外部的变量,那么它不应该是局部变量。提升本地到实例字段

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;
    }
}