WinForm控件CheckedListBox

 以下代码中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)
            {
                
                
            }
        }

猜你喜欢

转载自blog.csdn.net/nancy50/article/details/81203057