我有一个自定义表单,它将值返回到主窗体,但它没有看到变量。我不认为我这么说得很清楚,所以我会包含我想要做的例子的链接。
我知道我可能会忽略一些非常简单或明显的东西,但这就是我所拥有的。
Form1.cs中:
private void addTime_Click(object sender, EventArgs e)
{
Form add = new addTime(false, new string[] { "", "" });
if (add.ShowDialog(this) == DialogResult.OK)
{
// the line not working
Label1.Text = add.Details;
// reports with:'System.Windows.Forms.Form' does not contain a
// definition for 'Details' and no extension method 'Details' accepting
// a first argument of type 'System.Windows.Forms.Form' could be found (are you
// missing a using directive or an assembly reference?)
}
}
addTime.cs:
internal class addTime : Form
{
//..
private string _details;
public string Details
{
get { return _details; }
private set { _details = value; }
}
private string _goalTime;
public string GoalTime
{
get { return _goalTime; }
private set { _goalTime = value; }
}
private void applybtn_Click(object sender, EventArgs e)
{
Details = detailslbl.Text;
GoalTime = goalTimelbl.Text;
}
}
答案 0 :(得分:5)
你的'add'变量是Form类型,而不是addTime,而Form类型没有Details属性。
请尝试使用此行:
addTime add = new addTime(false, new string[] { "", "" });
答案 1 :(得分:3)
您需要设置子表单的DialogResult属性
DialogResult = DialogResult.OK
单击按钮。
答案 2 :(得分:0)
您需要将表单的dialogResult属性设置为OK。您尚未在代码中指定它。
在满足正确的标准后,您可以这样设置。
If (//condition)
{
this.DialogResult = DialogResult.OK;
This.Close();
}