Open Visual Studio. Click  New project.
Choose Visual Basic - > Windows Forms Application -> Ok.

The tab name of the design page you see should be "Form1.vb". If it's written "Form1.cs" then you have chosen C# by mistake, not Visual Basic.

Make sure you have this sections present during programming:
View -> Solution Explorer
View -> Properties Window
View -> Toolbox.

Inside the Toolbox section display the "Common Controls" dropdown menu.

Let's create a box that displays the text (the content) of a ".txt" file in the application window (form).
Toolbox -> TextBox -> drag and drop it into the form.
Click on the small black arrow of the textbox and choose: Multiline.  Now the textbox can display more than just one line of text.

Resize the textbox to make it larger inside the window form.

Go to your computer and create a .txt file. Preferably on a short hard drive address like:
D:\Just A File.txt
Open the file, write anything you like inside it. Save the file and close. Go back to Visual Studio.

Double click on the blue header of Form1. A new tab for Form1 should appear - this is the coding tab (compared to the previous design tab). You can switch between them.


The code so far:
Public Class Form1

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

End Sub
End Class
 
When you double click on an element in the design tab you enter into the coding section of that element - which is described as a "Sub" - short for subroutine. Inside the "Sub" we write our code which will basically tell the program what to do after the sub is triggered. Objects (controls) on our main program form mainly wait for events started by the users, like mouse and keyboard events (there can be others too), which will then start the code in the subs. This means that subs generally await events to begin their work, although you can call them inside the code without events. 

In our case, after the application window loads -> do this: our code. The successful loading process of the form is an event itself.

Since in this specific program we will be loading (inputing) content from a file, we will need to initialize a library that helps us use functions that take data from files.
At the very beginning of our program, we will have to add this:
Imports System.IO

Imports - function for adding a library
System.IO - the input/output library

After "Public Class Form1" we will add:
Private a1 As New Streamreader("D:\Just A File.txt")

 a1 - a new variable that is declared as a Streamreader
Streamreader - function used for loading data, serves in this case as a data type for variables, we need to have System.IO initialized at the start to use this

New code is:
Imports System.IO

Public Class Form1

Private a1 As New StreamReader("D:\Just A File.txt")

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

End Sub

End Class
Now we can enter this code inside the Form1 sub:
TextBox1.Text = a1.ReadToEnd()

TextBox1 - name of our textbox
.text  - it's used to display text in a textbox
a1.ReadToEnd() - "a1" variable holds data from our input file, ReadToEnd will read all the data inside "a1"

Final code:

Imports System.IO

Public Class Form1

    Private a1 As New StreamReader("D:\Just A File.txt")

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        TextBox1.Text = a1.ReadToEnd()
    End Sub

End Class
Press "Start Debugging" (green arrow button) or F5.
If you did write something inisde Just A File.txt, then it should be displayed.
Close the compiled program and go back to the design page.

- "a1" is just a variable, you can name it as you like
- "TextBox1" is the default name of the textbox element, you can change it in the design tab by clicking on the textbox, go to the "Properties" window and find the (Name) value. If you do that, the "TextBox1.Text = a1.ReadToEnd()" line of code should automatically change in the code tab to fit the new name.
- Properties window -> "Readonly" value. You can turn it to True. The textbox will no longer look like an input box but rather like a display box only.

One important thing to keep in mind is that we DIDN'T have to put any code in the sub of the textbox element, although we did use a textbox AND although we could have done that. So, in Visual Basic you can have many elements in your form that you DON'T write any code for (inside their subs) BUT you still make use of those elements (by using their names) inside other subs. Well, if you don't use them in other subs too, then their presence is probably redundant inside the application.

We could have used the sub of the textbox instead.
Notice this part inside the code of the Form1 sub:
Handles MyBase.Load

Handles - is a function used to send the event to the event handler ("e")
MyBase - refers to our main Form1, it's a code name for the main form
.Load  - this is one event, a window form loading event.
What this sub basically says is: "after the form loads up -> do the code (operations) that were added inside the sub"

Now we can go to the "design" tab and double click on the textbox element there. You should be inside the textbox sub now. Should look like this:
Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
End Sub

We can now take (cut) this line from our previous sub:
TextBox1.Text = a1.ReadToEnd()

And paste it in the textbox sub:
Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged 
TextBox1.Text = a1.ReadToEnd() 
End Sub

Now we can erase what's left of the Form1 sub and the code should then look like this:
Imports System.IO

Public Class Form1

    Private a1 As New StreamReader("D:\Just A File.txt")

    Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
        TextBox1.Text = a1.ReadToEnd()
    End Sub
End Class
Try to Compile this (F5).
Nothing should appear in the textbox.

Notice this part:
Handles TextBox1.TextChanged

The event for our textbox is ".TextChanged" which means that our sub code will only happen after the text inside the text box is modified, which is what we here can't do. We need to change the event. "Load" is not available for a textbox. We can use "Enter".

The new code should now look like this:
Imports System.IO

Public Class Form1

    Private a1 As New StreamReader("D:\Just A File.txt")

    Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.Enter
        TextBox1.Text = a1.ReadToEnd()
    End Sub
End Class
Start the program. The text from "Just A File.txt" should appear.

While writing "Handles TextBox1." you should be offered a list of possible events you can use in order to start the sub code. There's quite a number of them. Some examples:

Click - you will have to click inside the textbox for the text to appear
DoubleClick - double mouse click in the textbox
KeyDown - press any keyboard key
MouseHover - hover with the mouse pointer over the blinking text cursor in the textbox