0

我有 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();

此代码应将值从 传输FrmMenuFrmProperty。为什么这不起作用?消息框是空白的。

4

1 回答 1

0

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

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

但这最好写成:

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

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

就您的问题而言,我唯一能想到的会使您的代码无法使用上述方法工作的情况是,如果您没有将该FrmProperty_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);
    }

}
于 2013-10-21T16:40:24.493 回答