C#new表单返回值不被Mainform识别

时间:2013-05-09 21:34:05

标签: c# .net forms variables toolstrip

我通过工具条打开另一个表单,输入Mainform中需要的用户名(并在Mainform中声明为String)

Mainform代码:

private void toolStripButton6_Click(object sender, EventArgs e)
    {
        using (Form frm = new Form3())
        {
            frm.FormBorderStyle = FormBorderStyle.FixedDialog;
            frm.StartPosition = FormStartPosition.CenterParent;

            if (frm.ShowDialog() == DialogResult.OK)
            {
                Username = frm.ReturnValue1;
            }
        }
    }

表格3的代码:

    public string ReturnValue1 { 
        get
        {
            return textBox1.Text;
        }
    } 
    private void button1_Click(object sender, EventArgs e)
    {
        this.Close();
    }

C#告诉我没有frm.ReturnValue1 :(

1 个答案:

答案 0 :(得分:5)

您已将表单声明为Form而不是Form3

using (Form frm = new Form3())

并且由于类Form没有属性ReturnValue1,您将收到错误。这是因为Form3Form的子类,因此您可以将其分配给Form类型的变量,而无需任何强制转换。如果你有它,那么编译器就会告诉你需要一个演员。

您的代码应为:

using (Form3 frm = new Form3())

或者甚至(我的偏好):

using (var frm = new Form3())

然后它将始终是正确的类型,如果您决定将来使用不同的表单,则不必记得在两个地方更改类名。