如何为属性提供来自另一个类的值

本文关键字:另一个 属性 | 更新日期: 2023-09-27 18:36:20

我有2个类:FrmMenuFrmPropertyFrmProperty年,我创建了一个这样的属性:

public string ApplicationString { get; set; }
form1_load(object sender, EventArgs e)
{
    MessageBox.Show(ApplicationString);
}

然后,我在 FrmMenu 中实例化该类,如下所示:

FrmProperty frmp = new FrmProperty();
//Give value
frmp.ApplicationString = "1";
frmp.ShowDialog();

此代码应将值从 FrmMenu 传输到 FrmProperty 。为什么这不起作用?消息框为空。

如何为属性提供来自另一个类的值

所以,我自己也试过了,首先要注意的是你提供的代码无法编译。您的示例具有:

form1_load(object sender, EventArgs e)
{
    MessageBox.Show(ApplicationString);
}

但这最好写成:

private void FrmProperty_Load(object sender, EventArgs e)
{
    MessageBox.Show(ApplicationString);
}

也许这是不言自明的,但我发现它总是有助于确保一切都尽可能清晰。

就您的问题而言,我唯一可能想到的使您的代码无法使用上述方法的方法是,如果您没有将FrmProperty_Load方法连接到 Load 事件 FrmProperty .

除非有东西要求,否则 FrmProperty_Load 方法不会运行,因此在 FrmProperty 的构造函数中添加以下内容:

this.Load += FrmProperty_Load;

您的FrmMenu类应保持不变,FrmProperty类应大致如下所示:

public partial class FrmProperty : Form
{
    public string ApplicationString { get; set; }
    public FrmProperty()
    {
        InitializeComponent();
        this.Load += FrmProperty_Load;
    }
    private void FrmProperty_Load(object sender, EventArgs e)
    {
        MessageBox.Show(ApplicationString);
    }
}