当前位置:编程学习 > C#/ASP.NET >>

dataGridView ComboBoxColumns问题

我有一个DataGridView,有一列为ComboBoxColumns,我想实现一种效果,在ComboBox下拉选项前,添加一个复选框,可以进行多选,将选择的数据,以逗号形式写入ComboBox中。 --------------------编程问答-------------------- 在ComboBox下拉选项前,添加一个复选框,可以进行多选,将选择的数据???? --------------------编程问答-------------------- 太晕了,没明白意思 --------------------编程问答-------------------- CheckedListBox 控件 是不是和你的意思一样 --------------------编程问答-------------------- 就是DataGridViewComboboxColumns 列类型, --------------------编程问答-------------------- 你自己写一个多选的ListBox,Visible设为False,然后吧DataGridView对应的列设为只读。
然后在你的DataGridView.CellEnter事件里把这个ListBox显示出来,在CellLeave里把选择的项再填进去就行了。

大概例子


private void myDGV_CellEnter(object sender, DataGridViewCellEventArgs e)
        {
            if (e.ColumnIndex == 2 || e.ColumnIndex == 3)  //要使用自定义控件的列
            {
                Rectangle rect = dGVCarTrans.GetCellDisplayRectangle(e.ColumnIndex, e.RowIndex, true);
                //下面的lB就是那个能多选的ListBox
                lB.Size = new Size(rect.Width, rect.Height*11);//lB一次显示10行
                lB.Location = new Point(rect.Left, rect.Top);
                //如果要动态添加lB的内容,在这里做
                lB.SelectItems.Clear();
                lB.Visible = true;
            }
            else dp.Visible = false;
        }

        private void myDGV_CellLeave(object sender, DataGridViewCellEventArgs e)
        {
            string value="";
            if (e.ColumnIndex == 2 || e.ColumnIndex == 3)
            {
                foreach(string item in lB.SelectedItems)
                {
                     if(value=="") value+=item;
                     else value+=", "+item;
                }
                myDGV.CurrectCell.Value=value;
            }
        }
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,