You may set the id of the checkbox which you have created to the following
bx.ID = "ChkBox_" + i.ToString();
and in your
protected void CheckBox_CheckedChanged(object sender, EventArgs e)
{
CheckBox chkbox = (CheckBox)sender;
string chkboxName = chkbox.ID.Split('_')[1];
Response.Write(chkboxName);
}
This has worked for me I not sure if this the solution you require.