我需要一些帮助,我想将Form2.cs中的文本框中的文本设置为Form1.cs中的另一个文本框但是我一直收到此错误:
Error 2 An object reference is required for the non-static field, method, or property.
我在c#编码,我无法在互联网上找到它怎么做?
答案 0 :(得分:0)
您必须向Form1提供Form2的实例。例如,您可以在构造函数中传递它,如:
public Form2(Form1 frm)
然后你可以调用这样的东西
this.TextBox1.Text = frm.TextBox1.Text
答案 1 :(得分:0)
我只根据你的错误代码写这个答案。
non-static
方法而不使用belongs it类对象的任何实例。例如;这段代码会失败。class Program { public static void Main() { WriteMethod(); } public void WriteMethod() { Console.Writeline("Succes!"); } }
但这段代码有效;
class Program
{
public static void Main()
{
Program p = new Program();
p.WriteMethod();
}
public void WriteMethod()
{
Console.Writeline("Succes!");
}
}
希望你明白这一点。
答案 2 :(得分:0)
你的情况太简单了,你可以做很多事情来交换类之间的数据
为什么不尝试在另一个静态类或单例静态类中保存数据...
答案 3 :(得分:0)
//this code worked for me
//in form2 put following code prevent form from opening multiple times
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
private static Form2 Instance;
public static Form2 GetInstance()
{
if (Instance ==null || Instance.IsDisposed)
{
Instance = new Form2();
}
else
{
Instance.BringToFront();
}
return Instance;
}
// in form1
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Button2_Click(object sender, EventArgs e)
{
Form2 form2 = Form2.GetInstance();
form2.textBox1.Text = textBox1.Text;
form2.Show();
}
}