C# 更改另一窗体上文本框的文本

C# 更改另一窗体上文本框的文本,c#,.net,string,text,textbox,C#,.net,String,Text,Textbox,好吧,那么 我有两个表单,我们把它们称为main和second表单 在main上只有一个文本框(我们称之为T1),它是公共的,因此可以从任何形式访问它 在秒上,除了一个公共文本框(T2)和一个按钮(pub)(称之为B)外,什么都没有 在代码上,main中没有任何内容 在秒的代码上有 public string s1 在按钮B的代码中: s1 = T2.Text; MAIN mainredirect = new MAIN(); MAIN.T1.Text = s1; 就这样。我做错了什么 p、

好吧,那么

我有两个表单,我们把它们称为mainsecond表单

main上只有一个文本框(我们称之为T1),它是公共的,因此可以从任何形式访问它

上,除了一个公共文本框(T2)和一个按钮(pub)(称之为B)外,什么都没有

在代码上,main中没有任何内容

秒的代码上有

public string s1
在按钮B的代码中:

s1 = T2.Text;
MAIN mainredirect = new MAIN();
MAIN.T1.Text = s1;
就这样。我做错了什么


p、 s:没有vs显示的错误,所以它不是语法错误

这是WinForms吗?很难说出你想做什么。你有没有使用过调试器?绳子准备好了吗?你如何确认它不是?是否因为表单尚未加载


您只显示片段。使用调试器可以很容易地进一步隔离它。

不明白您试图实现什么,但可能忘记了简单地
Show()
创建表单

编辑:

读了你的评论。据我所知,您的main表单像对话框一样打开second表单,您希望从中获取输入值

主窗体的代码将为:

private void callSecondFormButton_Click(object sender, EventArgs e)
{
    SecondForm second = new SecondForm();
    second.ShowDialog();
    mainFormTextBox.Text = second.Result;
}
第二张表格:

public string Result = string.Empty;

private void secondFormCloseButton_Click(object sender, EventArgs e)
{
    Result = secondFormTextBox.Text;
    Close();
}
callSecondFormButton-主窗体上调用第二个窗体的按钮; mainFormTextBox-主窗体上的文本框; SecondForm-您的第二个表单将从main调用; 结果-第二种形式的公共字段,用于检索输入文本的结果; secondFormCloseButton-第二个表单上的按钮,用于更新结果并关闭对话框


在主窗体中,首先需要创建第二个窗体实例并显示窗体。执行
ShowDialog
后,主窗体将等待关闭打开的窗体。关闭后,它将检索结果文本。

您的问题缺少一些非常重要的必需信息,即您预期会发生什么以及实际发生了什么。现在,我无法找出您需要帮助的问题。实际发生的情况:无我想要的:将t2的字符串传输到t1Call mainredirect.Show(),就像@archer建议的那样。思考您看到的内容对于理解面向对象编程非常重要。我不使用它,因为第二个窗体是由showdialog从主窗体打开的,当用户单击B按钮时,它将关闭。主要形式总是存在的。