Visual C++ 2017 TextBox Error

Quantum7 21 Reputation points
2021-03-07T09:08:19.21+00:00

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:

System.NullReferenceException
HResult=0x80004003
Message=Object reference not set to an instance of an object.
Source=QMB
StackTrace:
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?

C++
C++
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,527 questions
0 comments No comments
{count} votes

3 answers

Sort by: Most helpful
  1. Cheong00 3,471 Reputation points
    2021-03-07T09:44:53.157+00:00

    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 112.1K Reputation points
    2021-03-07T09:58:04.963+00:00

    Maybe you should write one line only:

    String ^in1 = textBox1->Text;

    0 comments No comments

  3. Jeanine Zhang-MSFT 9,181 Reputation points Microsoft Vendor
    2021-03-08T07:23:34.193+00:00

    Hi,

    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,

    Jeanine


    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