这些是表格1的代码 - >
namespace Passing_Values
{
public partial class Form1 : Form
{
string a="preset value";
public Form1()
{
InitializeComponent();
}
private void btnOpenF2_Click(object sender, EventArgs e)
{
new Form2().Show();
}
public void set(string p)
{
MessageBox.Show("This is Entered text in Form 2 " + p);
a = p;
MessageBox.Show("a=p done! and P is: " + p + "---and a is: " + a);
textBox1.Text = "Test 1";
textBox2.Text = a;
textBox3.Text = p;
}
private void button2_Click(object sender, EventArgs e)
{
MessageBox.Show(a);
}
}
}
这些是表格2的代码 - >
namespace Passing_Values
{
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
string g;
g = textBox1.Text;
Form1 j = new Form1();
j.set(g);
}
}
}
见图。你可以理解设计。
这就是我想要做的。首先,我使用Form1中的按钮打开Form2。然后我输入一个文本并单击按钮("在Form1文本框中显示")。单击该值时,应在Form1的3个文本框中看到该值。我使用消息框来查看值是否正在传递。值从Form2传递到Form1。但是这些值不会显示在这3个文本框中,但传递的值显示在消息框中。通过查看代码可以理解3个文本框的原因。那么错误是什么?
答案 0 :(得分:1)
我只是在构造函数中传递它。 因此,form2的代码将是:
public partial class Form2 : Form
{
string _input;
public Form2()
{
InitializeComponent();
}
public Form2(string input)
{
_input = input;
InitializeComponent();
this.label1.Text = _input;
}
}
Form1中的调用将是:
private void button1_Click(object sender, EventArgs e)
{
fm2 = new Form2(this.textBox1.Text.ToString());
fm2.Show();
}
答案 1 :(得分:1)
实际上我有一个要通过的对象。所以我做了这个
in form1 - >
private void btnOpenF2_Click(object sender, EventArgs e)
{
new Form2(this).Show();
}
in form2 - >
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();
}
}
答案 2 :(得分:0)
在Form2
public static string s = string.Empty;
并且,在在Form1文本框中显示按钮单击事件中,从字符串s
中的文本框中获取值:
s = textBox1.Text;
Form1 f1 = new Form1();
f1.Show();
一次,Form1
再次出现,然后在Form1_Load
事件中,只需将Form2
的文字值传递到Form1
的文本框即可其值由变量s
获得:
foreach (Control text in Controls)
{
if (text is TextBox)
{
((TextBox)text).Text = Form2.s;
}
}
答案 3 :(得分:0)
public partial class Form1 : Form
{
Form2 fm2;
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
fm2 = new Form2();
fm2.Show();
fm2.button1.Click += new EventHandler(fm2button1_Click);
}
private void fm2button1_Click(object sender, EventArgs e)
{
textBox1.Text = fm2.textBox1.Text;
}
}
表格2中的代码
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
}
将 textbox1
和 button1
的修饰符属性设置为public