Agregar / quitar controles con el mismo nombre de referencia

Estoy agregando controles en un panel uno tras otro cuando el usuario hace clic en un botón. Los controles se muestran uno tras otro en el panel. Cuando el panel está lleno, por ej. diez, el siguiente control agregado tiene que reemplazar el primer control que se agregó, pero primero necesito eliminar el primer control ... el problema es que todos los controles que se están creando tienen la misma referencia, p. "pic", ahora cuando uso panel1.Controls.Remove (pic) no especifica que el control de la primera posición deba eliminarse.

int index = 0;  

if (util.GetSize() != 10)
{
    ms.Controls.Add(musNote);
}
else
{   
    ms.Controls.Add(musNote); //this to replace first musNote added... but before I need to remove the musNote that in that position already (problem all of the are musNote!!
    index++;
    if (index == 10)
    {
        index = 0;
    }
}
musNote.ShowNote();

Lo anterior no es el código completo, pero debería ser suficiente para abordar el problema ... si hay alguna información. es necesario por favor pregúntame np. Tks de antemano por la ayuda.

Respuestas a la pregunta(1)

Su respuesta a la pregunta