Si entendi bien tu pregunta, la solución es agregar el manejador de eventos al evento CheckedChanged de cada control que creas, asi:
Código:
chkList1.CheckedChanged += Activate_Click;
Sin embargo el evento no se dispararia de manera automatica ya que los checkbox no generarian el postback, tendrias que establecer la propiedad a verdadero:
Código:
chkList1.AutoPostBack = true;
Con esto cada que selecciones uno de tus controles creados se disparará el manejador de eventos que creaste (Activate_Click).
Para recuperar el id del control que esta disparando tienes que referenciarlo en tu manejador de eventos y obtener su propiedad ID:
Código:
protected void Activate_Click(object sender, EventArgs e)
{
CheckBox chk = (CheckBox)sender;
string x = chk.ID;
}
Por otro lado, si lo que quieres es que cuando otro control dispara el evento Activate_Click obtener los ID de los checkbox marcados, seria algo asi:
Código:
foreach (Control c in PnlControl.Controls)
{
if (c.GetType() == typeof(CheckBox))
{
using (CheckBox chk = (CheckBox)c)
{
if(chk.Checked)
y = chk.ID;
}
}
}
Suerte