子表单中的用户输入

本文关键字:用户 输入 表单 | 更新日期: 2023-09-27 18:10:50

我正试图从表单中获取值。我一直在尝试这个:如何从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

子表单中的用户输入

您的Part3变量定义为类型Form,不声明ReturnValue1属性。(ReturnValue1属性是在你的PortSensitivity类上声明的)。

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

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

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