Visual C++ 2017 TextBox Error

Quantum7 21 Reputation points

I'm testing my compiling software and the tester is detecting an error with the following code:

    String^ in1;
    System::Windows::Forms::TextBox^ textBox1;
    textBox1->Text = in1;

Here is the error details:

Message=Object reference not set to an instance of an object.
at QMB.Form1.button1_Click(Object sender, EventArgs e) in c:\users\quant\desktop\quantum metaphysics bridge\qmb\form1.h:line 266
at System.Windows.Forms.Control.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ButtonBase.WndProc(Message& m)
at System.Windows.Forms.Button.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
at System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)
at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
at System.Windows.Forms.Application.Run(Form mainForm)
at Main(String[] args) in c:\users\quant\desktop\quantum metaphysics bridge\qmb\form1.cpp:line 11

What should I do?

A high-level, general-purpose programming language, created as an extension of the C programming language, that has object-oriented, generic, and functional features in addition to facilities for low-level memory manipulation.
3,631 questions
0 comments No comments
{count} votes

3 answers

Sort by: Most helpful
  1. Cheong00 3,476 Reputation points

    You have to instantiate the object instance before using it.

         String^ in1;
         System::Windows::Forms::TextBox^ textBox1 = gcnew System::Windows::Forms::TextBox;
         textBox1->Text = in1;
    1 person found this answer helpful.
    0 comments No comments

  2. Viorel 114.7K Reputation points

    Maybe you should write one line only:

    String ^in1 = textBox1->Text;

    0 comments No comments

  3. Jeanine Zhang-MSFT 9,431 Reputation points Microsoft Vendor


    I suggest you could try the following code:

    String^ in1;  
     textBox1->Text = in1;  

    When you add controls to the form, vs will automatically add the following statements:

    private: System::Windows::Forms::TextBox^  textBox1;  
    this->textBox1 = (gcnew System::Windows::Forms::TextBox());  

    So you didn’t need to repeat by yourself :

    System::Windows::Forms::TextBox^ textBox1;  

    Best Regards,


    If the response is helpful, please click "Accept Answer" and upvote it.

    Note: Please follow the steps in our documentation to enable e-mail notifications if you want to receive the related email notification for this thread.

    0 comments No comments