【问题标题】:C# new Form return Value not recognised by MainformMainform 无法识别 C# 新表单返回值
【发布时间】:2013-05-09 21:34:05
【问题描述】:

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

主窗体代码:

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 :(

【问题讨论】:

    标签: c# .net forms variables toolstrip


    【解决方案1】:

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

    using (Form frm = new Form3())
    

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

    你的代码应该是:

    using (Form3 frm = new Form3())
    

    或者甚至(我的偏好):

    using (var frm = new Form3())
    

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

    【讨论】:

    • 不要将表单命名为“Form1”、“Form2”和“Form3”。 “MainForm”或“EmployeeAddEditForm”怎么样,有意义的东西。
    • @granadaCoder - 是的,但我在这里使用与 OP 相同的名称。
    • 对不起,我在和 OP 说话,而不是你。我认为他/她会早先用有意义的名字“看到”错误。
    • @granadaCoder - 很有可能。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-24
    • 1970-01-01
    • 1970-01-01
    • 2020-05-01
    • 1970-01-01
    相关资源
    最近更新 更多