Getting RFID tag data using C#
You are closing the port immediately after you open it. You need to keep it open while you are expecting data. Remove the line

serialPort1.Close();


Then, in the callback you try to access the GUI from the callback thread. That's not allowed. Use Invoke().

private void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
     SerialPort sp = (SerialPort)sender;
     //string indata = sp.ReadExisting();
     string indata = sp.ReadLine();
     //textBox1.Text = indata;
     Invoke(new Action&lt;string&gt;(
         (s) =&gt; 
         {
             textBox1.Text = s;
         }
     ), indata);
}