if (ckbShowPassword.Checked){
  tbPassword.PasswordChar='\0'; 
}
else{
  tbPassword.PasswordChar='*';
}

用tbPassword.PasswordChar=' ';是不行的。其实char类型的初始值就是'\0',在这里不过是还其本来面目罢了。