CheckedListBox里的项是从DataGridView里读取的标题列,我现在想点击选中CheckedListBox里某个项,就去执行选中的这个项所对应的相关操作,
取消选中后再执行对应的相关操作。请问如何实现?
private int idx; //当前选中项的序号private void clb_ItemCheck(object sender, ItemCheckEventArgs e)
{
idx = e.Index; //当前的选中项序号
}private void clb_SelectedIndexChanged(object sender, EventArgs e)
{
string[] x = new string[MyDataGrid.RowCount];
double[] y = new double[MyDataGrid.RowCount]; for (int j = 0; j < MyDataGrid.RowCount; j++)
{
// 取DataGridView里第一列的时间放入一个string数组里
x[j] = MyDataGrid.Rows[j].Cells[0].Value.ToString();
// 取相应的选中的第idx列放入数组
y[j] = Convert.ToDouble(MyDataGrid.Rows[j].Cells[idx].Value);
} // Do SomeThing...
}
点击选中后没问题,后面执行正常。如果是取消选中,如何判断? 换句话说就是如何判断选中与取消选中?在什么地方判断?还要知道当前选择与取消选择所操作的项的序号?
取消选中后再执行对应的相关操作。请问如何实现?
private int idx; //当前选中项的序号private void clb_ItemCheck(object sender, ItemCheckEventArgs e)
{
idx = e.Index; //当前的选中项序号
}private void clb_SelectedIndexChanged(object sender, EventArgs e)
{
string[] x = new string[MyDataGrid.RowCount];
double[] y = new double[MyDataGrid.RowCount]; for (int j = 0; j < MyDataGrid.RowCount; j++)
{
// 取DataGridView里第一列的时间放入一个string数组里
x[j] = MyDataGrid.Rows[j].Cells[0].Value.ToString();
// 取相应的选中的第idx列放入数组
y[j] = Convert.ToDouble(MyDataGrid.Rows[j].Cells[idx].Value);
} // Do SomeThing...
}
点击选中后没问题,后面执行正常。如果是取消选中,如何判断? 换句话说就是如何判断选中与取消选中?在什么地方判断?还要知道当前选择与取消选择所操作的项的序号?
{
idx = e.Index; //当前的选中项序号,(不只是被选中后会响应此事件取得Index值,在取消选中后也会响应此事件,取得Index值)
CheckState checkValue = e.NewValue; //取当前被操作的复选框的状态,在这之后可以进行一下对Index和CheckState的判断,然后进行后续操作
}你是想知道这个吗?
private int idx;
private CheckState checkValue;private void clb_ItemCheck(object sender, ItemCheckEventArgs e)
{
idx = e.Index;
checkValue = e.NewValue;
}
private void clb_SelectedIndexChanged(object sender, EventArgs e)
{
switch (checkValue)
{
case CheckState.Checked:
{
// Do SomeThing...
}
break; case CheckState.Unchecked:
{
// Do SomeThing...
}
break;
}
}