En C#, tu peux ajouter dynamiquement des boutons à ton formulaire, au chargement de la page par exemple (Page_Load()), et chaque bouton a les propriétés CommandArgument et CommandName, dans lesquelles tu peux placer l'ID de l'eleve correspondant par exemple.
Ensuite tu peux aussi ajouter un evenement pour chaque bouton. En VB.NET, ca se fait avec la fonction AddHandler, en C# je ne sais pas, c peut etre la meme chose.
Apres, lorsque tu cliques sur ton bouton, l'evenement est déclenché vers la fonction que tu as définie grace au AddHandler, et la propriété CommandArgument passée en parametre automatiquement pourra te donner l'ID de l'eleve.
Tu n'as besoin que d'un seul formulaire.