Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 需要帮助让系统从Form2C读取字段吗#_C#_Winforms_Forms - Fatal编程技术网

C# 需要帮助让系统从Form2C读取字段吗#

C# 需要帮助让系统从Form2C读取字段吗#,c#,winforms,forms,C#,Winforms,Forms,我正在创建一个小程序,它可以为我说话,也可以为我做一些小任务。我想创建第二个表单(Form2),在其中输入我的姓名和其他个人信息 如何让Form1读取Form2中的文本字段 如何让Form1读取Form2中的文本字段 大概Form1创建了Form2的一个实例。。。因此,请保留该实例,并在窗体上公开适当的属性: Form2 form2 = new Form2(); form2.Show(); // Or ShowDialog? string name = form2.UserName; Use

我正在创建一个小程序,它可以为我说话,也可以为我做一些小任务。我想创建第二个表单(Form2),在其中输入我的姓名和其他个人信息

如何让Form1读取Form2中的文本字段

如何让Form1读取Form2中的文本字段

大概
Form1
创建了
Form2
的一个实例。。。因此,请保留该实例,并在窗体上公开适当的属性:

Form2 form2 = new Form2();
form2.Show(); // Or ShowDialog?

string name = form2.UserName;
UserName
的实现很可能只是从文本字段中获取值:

public string UserName { get { return userNameTextField.Text; } }
您可以使用属性直接公开文本字段,但我个人倾向于认为表单应该“拥有”其UI,而不要让其他代码弄乱它

如何让Form1读取Form2中的文本字段

大概
Form1
创建了
Form2
的一个实例。。。因此,请保留该实例,并在窗体上公开适当的属性:

Form2 form2 = new Form2();
form2.Show(); // Or ShowDialog?

string name = form2.UserName;
UserName
的实现很可能只是从文本字段中获取值:

public string UserName { get { return userNameTextField.Text; } }

您可以使用属性直接公开文本字段,但就我个人而言,我倾向于认为表单应该“拥有”其UI,而不让其他代码弄乱它。

您可以创建方法和表单1,从
文本字段检索数据

public string GetTextFieldText()
{
     return textfield.Text;
}
或者用属性包装它

public string TextField
{
    get
    {
        return textfield.Text;
    }
}
然后从form2访问它,如下所示:

Form1 frm1 = new Form1();
string text = frm1.TextField; // Or GetTextFieldText()

您可以创建方法和表单1从
textfields

public string GetTextFieldText()
{
     return textfield.Text;
}
或者用属性包装它

public string TextField
{
    get
    {
        return textfield.Text;
    }
}
然后从form2访问它,如下所示:

Form1 frm1 = new Form1();
string text = frm1.TextField; // Or GetTextFieldText()

使用修饰符
public
创建全局变量,然后使用
text\u Changed
事件或
button\u click
事件(如果要在单击按钮后检索文本),将文本框的文本指定给变量

然后在您的
表格1
中,使用

    Form2 form = new Form2();
    //Then do whatever u want with the variable
    MessageBox.Show(form.globalVariableName);

form2
Form1
中,将文本框的修饰符属性设置为
public

    Form2 form = new Form2();
    //Then do whatever u want with the textbox
    MessageBox.Show(form.TextBoxName.Text);

使用修饰符
public
创建全局变量,然后使用
text\u Changed
事件或
button\u click
事件(如果要在单击按钮后检索文本),将文本框的文本指定给变量

然后在您的
表格1
中,使用

    Form2 form = new Form2();
    //Then do whatever u want with the variable
    MessageBox.Show(form.globalVariableName);

form2
Form1
中,将文本框的修饰符属性设置为
public

    Form2 form = new Form2();
    //Then do whatever u want with the textbox
    MessageBox.Show(form.TextBoxName.Text);

这应该让你开始:

//Global Variable
Form2 frm2;

//assuming form1 is the creator of form2
public Form1()
{
   frm2 = new Form2();
}

//in your Form1, under read data button for example:
string myName = frm2.TextBox1.Text;

这应该让你开始:

//Global Variable
Form2 frm2;

//assuming form1 is the creator of form2
public Form1()
{
   frm2 = new Form2();
}

//in your Form1, under read data button for example:
string myName = frm2.TextBox1.Text;

创建全局变量?创建全局变量?