My best guess is that the initialization of your checkbox (what sets Checked to false) is performed on every postback. For instance. change it
protected void Page_Load(object sender, EventArgs e) { myCheckBox.Checked = false; }
to that
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) myCheckBox.Checked = false; }
However, we will need to see another code before we can help you. Part of the problem may be that the ViewState is not saved when the control is not visible. If all you want to do is show / hide it, use javascript as others suggested.
Here is an example with jQuery:
$(document).ready(function (){ $("#myTextBox").change(function() { $("#myCheckBox").show(); }); });
source share