Todo en .Net son arreglos, si vas a agregar algo a un control cuando presionas punto siempre haces algo como:
LoQueSea
.Add(lo_que_quiero_agregar);
System.Collections.Generic; es el namespace para crear arrays, matrices, arreglos...
Es claro que es una tarea pero puedo indicarte mas o menos la logica, create una clase que herede de ArrayList asi:
using System.Collections.Generic;
Class TUCLASE:ArrayList
{
Public string Nombre;
}
... asi cuando vayas a agregar un elemento no tienes que redimensionar nada... es decir no vas a crear un vector de esta forma: Vector[tamaño]
sino que vas a crear una coleccion de elementos, en este caso nombres:
TUCLASE Clientes=new TUCLASE();
para agregar uno nuevo:
Clientes.Add(Nombre);
para borrarlo:
Clientes.Remove(Nombre);
ya lo de habilitar o inhabilitar los botones es sencillo...
crea una variable con un valor por ejemplo 1 para cuando el servicio si inicio y 0 para cuando esta parado
entonces cuando pulses el boton debes preguntar:
if(variable==0){iniciarproceso;inhabilitarBoton;variable=1; //para que los demas controles sepan que esta corriendo el proceso}