我有这样的表格和类:
namespace ALTER_Control
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
ALTER A = new ALTER();
A.ALTER();
}
}
public class ALTER
{
public Form1 F;
public void ALTER()
{
F.TextBox1.Text="I Altered That";
}
}
}
所以我尝试调用ALTER()来更改Form1中的textbox1值,但是我得到了这个错误:
object reference not set to an instance of an object
只有在我访问或修改Form1控件时才会发生这种情况。
顺便说一句,我将textbox1修饰符设置为public
所以,最后我想改变控制值而不会出现错误。
答案 0 :(得分:2)
您需要为表单指定引用。像这样:
private void button1_Click(object sender, EventArgs e)
{
ALTER A = new ALTER();
A.F = this;
A.ALTER();
}
答案 1 :(得分:2)
为什么您的ALTER
课程(也不是一个优秀的班级名称)必须了解您的表格?
private void button1_Click(object sender, EventArgs e)
{
ALTER A = new ALTER();
this.TextBox1.Text = A.ALTER();
}
}
[...]
public class ALTER
{
public String ALTER()
{
// Do your thing
return "I Altered That";
}
}
答案 2 :(得分:1)
使用以下代码行:
ALTER A = new ALTER();
A.F = this ;
A.ALTER();