0

我通过工具条打开一个附加表单以输入主窗体中需要的用户名(并在主窗体中声明为字符串)

主窗体代码:

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

Form3代码:

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

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

4

1 回答 1

5

您已将表单声明为 type Formnot Form3

using (Form frm = new Form3())

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

您的代码应该是:

using (Form3 frm = new Form3())

或者甚至(我的偏好):

using (var frm = new Form3())

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

于 2013-05-09T21:35:43.553 回答