C#主窗体未识别新窗体返回值
我通过Toolstrip打开一个额外的表单,输入Mainform中需要的用户名(在Mainform中声明为字符串) 主表格代码:C#主窗体未识别新窗体返回值,c#,.net,forms,variables,toolstrip,C#,.net,Forms,Variables,Toolstrip,我通过Toolstrip打开一个额外的表单,输入Mainform中需要的用户名(在Mainform中声明为字符串) 主表格代码: private void toolStripButton6_Click(object sender, EventArgs e) { using (Form frm = new Form3()) { frm.FormBorderStyle = FormBorderStyle.FixedDialog;
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:(您已将表单声明为type
form
而不是Form3
:
using (Form frm = new Form3())
由于类Form
没有属性ReturnValue1
,因此会出现错误。这是因为Form3
是Form
的子类,因此可以将其分配给Form
类型的变量,而无需任何强制转换。如果使用该属性,则编译器将不得不使用另一种方法你需要一个演员
您的代码应该是:
using (Form3 frm = new Form3())
或者甚至(我的偏好):
然后它将始终是正确的类型,如果您决定将来使用不同的表单,您不必记住在两个地方更改类名。您已将表单声明为type
form
而不是Form3
:
using (Form frm = new Form3())
由于类Form
没有属性ReturnValue1
,因此会出现错误。这是因为Form3
是Form
的子类,因此可以将其分配给Form
类型的变量,而无需任何强制转换。如果使用该属性,则编译器将不得不使用另一种方法你需要一个演员
您的代码应该是:
using (Form3 frm = new Form3())
或者甚至(我的偏好):
然后它将始终是正确的类型,如果您决定将来使用不同的表单,您不必记住在两处更改类名。并且不要将表单命名为“Form1”、“Form2”和“Form3”。那么“MainForm”或“EmployeeAddEdit form”如何,一些有意义的东西。@granadaCoder-嗯,是的,但我在这里使用的是与OP相同的名称。对不起,我是与OP交谈的,而不是您。我想他/她会用有意义的名称“看到”前面的错误。@granadaCoder-很可能。并且不要将您的表单命名为“Form1”、“Form2”和“Form3”。那么“main form”或“EmployeeAddEditForm”呢,一些有意义的东西。@granadaCoder-是的,但我在这里使用的是与OP相同的名称。对不起,我是在和OP说话,而不是你。我想他/她会在前面用有意义的名称“看到”错误。@granadaCoder-很可能。