I have 2 Forms (Form1 and Form2) and a class (Class1). Form1 contains a button (Button1) and Form2 contains a RichTextBox (textBox1) When I press Button1 on Form1, I want the method (DoSomethingWithText) to be called. I keep getting "NullReferenceException - Object reference not set to an instance of an object". Here is a code example:
Form1:
namespace Test1
{
public partial class Form1 : Form
{
Form2 frm2;
Class1 cl;
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
frm2 = new Form2();
cl.DoSomethingWithText();
frm2.Show()
}
}
}
Class1:
namespace Test1
{
class Class1
{
Test1.Form2 f2;
public void DoSomethingWithText()
{
f2.richTextBox1.Text = "Blah blah blah";
}
}
}
How can I call this method from within a class? Any help is greatly appreciated.
You have to instantiate
c1
andf2
. Try this:UPDATE
As Keith has pointed out, because you're instantiating a new version of
Form2
, the rich textbox will never show the blah blah blah code. I've updated the sample to fix this.You are never initializing cl (or f2 for that matter).
Either instantiate first (see @Ray Booysen's answer) or convert it to a static method:
Then:
You haven't instantiated an instance of Class1 before you've tried to use it
You'd need to do:
Not I've also added in the passing of frm2 in to the DoSomethingWithText method for it to then use (else you'd end up with another similar exception as f2 hasn't been instantiated in that class.
You need to either declare DoSomethingWithText as a static class or instantiate the reference to Class1.