子表单中的用户输入

时间:2013-04-24 21:41:21

标签: c# winforms

我正试图从表单中获取值。 我一直在尝试这个:How to return a value from a Form in C#?

它对我不起作用,也许我做错了但是在第二部分。

using (var form = new frmImportContact())
{
    var result = form.ShowDialog();
    if (result == DialogResult.OK)
    {
        string val = form.ReturnValue1;            //ReturnValue1 is not an option...
        string dateString = form.ReturnValue2;
        //Do something here with these values

        //for example
        this.txtSomething.Text = val;
    }
}

我无法显示“ReturnValue1”。它被宣布为公开,我还需要做什么?

这是我写的。我的子表格:

namespace ASPE.GUI.SensorWizard
{
    public partial class PortsSensitivity : Form
    {
        public int ReturnValue1 { get; set; }
        public PortsSensitivity()
        {
            InitializeComponent();
        }

        private void PortsBox_ValueChanged(object sender, EventArgs e, KeyPressEventArgs m)
        {
            this.ReturnValue1 = Convert.ToInt16(PortsBox.Value);
        }

        private void PortsSensitivity_Load(object sender, EventArgs e)
        {

        }

    }
}

我的主要形式:

            //Show Form (Number of Ports, Sensitivity)
            Form Part3 = new ASPE.GUI.SensorWizard.PortsSensitivity();
            DialogResult dr3 = new DialogResult();
            dr3 = Part3.ShowDialog();
            //Write Variables
            int numofports = Part3.ReturnValue1;  //Not an option.
            //Close Form

1 个答案:

答案 0 :(得分:3)

您的Part3变量定义为类型Form,但未声明ReturnValue1属性。 (ReturnValue1类声明了PortSensitivity属性。

更改

Form Part3 = new ASPE.GUI.SensorWizard.PortsSensitivity(); 

PortSensitivity Part3 = new ASPE.GUI.SensorWizard.PortsSensitivity();

您的第一个示例也是在using语句中实例化frmImportContact类型的内容,但您没有显示此实现。检查您是否已声明此类型的属性(或者您不打算创建PortSensitivity类型的实例)。