我在窗体中创建了一个控件数组CHECKBOX,并添加到了窗体的PANEL中,请问我在程序中怎么去获得窗体上添加的控件数组的CHECKED属性变化,
我在窗体上更改了CHECKBOX的CHECKED的状态,但是在程序中通过循环判断控件的状态,并不能得到CHECKBOX的Checked状态,已经勾选的控件,得到的CHECHED属性却是为FALSE,请问怎么解决。
另外,怎么通过程序,更改控件数组某一个控件的属性,例如颜色,选中状态。
遍历panel的children,取得当前的checkbox,然后再获取和赋值checked状态。
要结束checkbox的编辑状态或者让这个checkbox失去焦点,checked状态生效。
获取之后我怎么刷新它在窗体上的状态。
public partial class Form1 : Form
{
CheckBox[] _checkboxes;
bool _bLock = false;
public Form1()
{
InitializeComponent();
_checkboxes = new CheckBox[5];
for (int i = 0; i < _checkboxes.Length; i++ )
{
_checkboxes[i] = new CheckBox();
_checkboxes[i].CheckedChanged += chk_CheckedChanged;
this.panel1.Controls.Add(_checkboxes[i]);
_checkboxes[i].Location = new Point(0, i*30);
}
}
void chk_CheckedChanged(object sender, EventArgs e)
{
if (_bLock) return;
CheckBox chk = sender as CheckBox;
if(chk.Checked)
{
// 更改状态
// 举例
chk.BackColor = Color.Red;
chk.Text = "test";
// 如果在这里修改Checked状态,需要加锁,下面代码只适用于单线程
_bLock = true;
chk.Checked = !chk.Checked;
_bLock = false;
}
}
}