以下代码中cbList_IssueStatus、cbList_QualityIndicator是CheckedListBox控件
1.绑定数据源
/// <summary>
/// 初始化问题状态复选框列表
/// </summary>
private void InitCbList_IssueStatus()
{
DataTable dt = BLL.Issues.IssueStatus.Que_AllIssueStatus();
//cbList_IssueStatus是CheckedListBox控件
this.cbList_IssueStatus.DataSource = dt;
this.cbList_IssueStatus.ValueMember = "status_id";
this.cbList_IssueStatus.DisplayMember = "status_name";
this.cbList_IssueStatus.ClearSelected();
}
2.CheckedListBox实现单选
private void cbList_QualityIndicator_ItemCheck(object sender, ItemCheckEventArgs e)
{
try
{
if (cbList_QualityIndicator.CheckedItems.Count > 0)
{
for (int i = 0; i < cbList_QualityIndicator.Items.Count; i++)
{
if (i != e.Index)
{
//cbList_QualityIndicator.SetItemCheckState(i, CheckState.Unchecked);
//设置未选中
cbList_QualityIndicator.SetItemChecked(i, false);
}
}
}
}
catch (Exception ex)
{
MessageBox.Show(@"操作不成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
3.复选框选择事件
//指标复选框选择事件
private void cbList_QualityIndicator_SelectedIndexChanged(object sender, EventArgs e)
{
try
{
if (this.cbList_QualityIndicator.SelectedItems.Count > 0)//CheckedItems.Count为0
{
DataRowView dv = this.cbList_QualityIndicator.SelectedItem as DataRowView;
string indicator_id = dv.Row["indicator_id"].ToString(); //指标Id
//设置另一个复选框状态(多选)
SetCbList_IssueStatus(indicator_id);
}
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
}
4.CheckedListBox的Item提示ToolTip,if判断防止ToolTip闪烁
//CheckBoxList的ToolTip
private void cbList_QualityIndicator_MouseMove(object sender, MouseEventArgs e)
{
try
{
int index = this.cbList_QualityIndicator.IndexFromPoint(e.Location);
if (index != -1 && index < this.cbList_QualityIndicator.Items.Count)
{
string message = "提示";
//以下判断,防止ToolTip闪烁
if (toolTip1.GetToolTip(cbList_QualityIndicator) != message)
{
this.toolTip1.SetToolTip(this.cbList_QualityIndicator, message);
}
}
}
catch (Exception ex)
{
}
}