If you are not restricted to using an array you may want to consider List<Student>. This would simplify your code to be something like...
Initialize the list of students
var ClassList = new List<Student>();
Modify your add click to...
private void btnAdd_Click(object sender, EventArgs e)
{
// Create new student and assign name etc provided by user
Student _Student = new Student();
_Student.Name = txtName.Text;
_Student.Surname = txtSurname.Text;
_Student.Age = Convert.ToInt32(txtAge.Text);
_Student.ITMark = Convert.ToInt32(txtIT.Text);
_Student.MathMark = Convert.ToInt32(txtEng.Text);
_Student.EngMark = Convert.ToInt32(txtMath.Text);
// ... omitted for brevity
ClassList.Add(_Student);
// .. clear input controls.
}
Then no changes are needed to your display method
private void displayAll_Click(object sender, EventArgs e)
{
richTextBox1.Clear();
for (int j = 0; j < ClassList.Count(); j++)
{
richTextBox1.Text += ("Student: " + Convert.ToString(j) +
"\nName: " + ClassList[j].Name +
"\nSurname: " + ClassList[j].Surname +
"\nAge: " + ClassList[j].Age +
"\nStudent Average: " + Convert.ToString(ClassList[j].AverageMark) +
"\n" + "\n");
}
//MessageBox.Show("Display all students.");
}