C# 通过单击按钮将值从一个窗体传递到另一个窗体
这是我的两张表格。 这些是表格1的代码--> 这些是表格2的代码--> 看这幅画。你可以理解它的设计C# 通过单击按钮将值从一个窗体传递到另一个窗体,c#,winforms,parameter-passing,C#,Winforms,Parameter Passing,这是我的两张表格。 这些是表格1的代码--> 这些是表格2的代码--> 看这幅画。你可以理解它的设计 这就是我想做的。首先,我使用Form1中的按钮打开Form2。然后我输入一个文本并单击按钮(“在Form1文本框中显示”)。单击时,该值应在Form1的3个文本框中显示。我使用消息框查看值是否传递。值从Form2传递到Form1。但这些值不会显示在这3个文本框中,但传递的值会显示在消息框中。通过查看代码,可以理解3个文本框的原因。那么错误是什么呢?在表单2中放置一个静态字符串 public s
这就是我想做的。首先,我使用Form1中的按钮打开Form2。然后我输入一个文本并单击按钮(“在Form1文本框中显示”)。单击时,该值应在Form1的3个文本框中显示。我使用消息框查看值是否传递。值从Form2传递到Form1。但这些值不会显示在这3个文本框中,但传递的值会显示在消息框中。通过查看代码,可以理解3个文本框的原因。那么错误是什么呢?在
表单2中放置一个静态字符串
public static string s = string.Empty;
并且,在您的在Form1文本框中显示按钮单击事件中,从字符串s
中的文本框中获取值:
s = textBox1.Text;
Form1 f1 = new Form1();
f1.Show();
foreach (Control text in Controls)
{
if (text is TextBox)
{
((TextBox)text).Text = Form2.s;
}
}
一旦Form1
再次显示,然后在Form1\u Load
事件中,只需将Form2
的文本值传递给Form1
的文本框,其值由变量s
获取:
s = textBox1.Text;
Form1 f1 = new Form1();
f1.Show();
foreach (Control text in Controls)
{
if (text is TextBox)
{
((TextBox)text).Text = Form2.s;
}
}
和格式2中的代码
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
}
将textbox1
和button1
的修饰符属性设置为public
我只需将其传递给构造函数即可。
因此,表2的代码为:
public partial class Form2 : Form
{
string _input;
public Form2()
{
InitializeComponent();
}
public Form2(string input)
{
_input = input;
InitializeComponent();
this.label1.Text = _input;
}
}
表格1中的调用将是:
private void button1_Click(object sender, EventArgs e)
{
fm2 = new Form2(this.textBox1.Text.ToString());
fm2.Show();
}
实际上我有一个目标要通过。所以我做了这个
在表格1中-->
在表格2中-->
您应该在Form1中创建在关闭Form2时要保留的变量有几种方法。。但是只需调用newform2().Show()代码>不是我会采取的方法。。我将创建一个var frm2=new Form2(),然后在关闭Form2时传递和/或创建变量以保存值,然后在显示Form2时,我将调用ShowDialog()`方法,以便在关闭时返回调用方法。。然后我会调用frm2.Dispose()`希望这有意义rry我是VS或C的新手#如果您提供代码会更好。所以我能理解它!谢谢大家!@方法你最好在谷歌上搜索一下怎么做。。这不是一个代码工厂站点,这也没有那么困难。。所以不,我不会为你做这项工作。。对不起,这不是这个网站的工作方式。我给你解释了怎么做。@MethodMan是对的。通过谷歌搜索,你会发现很多例子。例如(10秒后找到,第一行),我在谷歌上搜索。但是没有得到正确的答案。这就是我来这里的原因:/BTW tnx用于链接@DDD SoftCan youforeach(控件中的文本框文本)
?@khargoosh您不能,因为您需要将基类定义为控件,而Textbox不是所有控件的基类:)即使我将button修饰符属性设置为public,我仍然会收到此错误“Form”不包含“searchButton”的定义,并且没有可访问的扩展方法“searchButton”接受第一个可以找到“Form”类型的参数(是否缺少using指令或程序集引用?
为什么?
private void button1_Click(object sender, EventArgs e)
{
fm2 = new Form2(this.textBox1.Text.ToString());
fm2.Show();
}
private void btnOpenF2_Click(object sender, EventArgs e)
{
new Form2(this).Show();
}
public partial class Form2 : Form
{
Form1 a;
public Form2(Form1 b)
{
a = b;
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
string g;
g = textBox1.Text;
a.set(g);
this.Close();
}
}