繁体   English   中英

如何给另一个类别的财产赋予价值

[英]How to give property a Value from another class

我有2个类: FrmMenuFrmProperty FrmProperty我创建了一个像这样的属性:

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 为什么不起作用? MessageBox为空白。

因此,我自己进行了尝试,首先要注意的是您提供的代码无法编译。 您的示例有:

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

但这最好写成:

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

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

就您的问题而言,我可能唯一想到的是,如果您没有将FrmProperty_Load方法连接到FrmProperty_Load的Load事件, FrmProperty使代码无法使用上述方法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);
    }

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM