dataGridView ComboBoxColumns问题

wangs_1 2012-07-05 11:36:33
我有一个DataGridView,有一列为ComboBoxColumns,我想实现一种效果,在ComboBox下拉选项前,添加一个复选框,可以进行多选,将选择的数据,以逗号形式写入ComboBox中。
...全文
165 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
maji_lulu 2012-07-05
  • 打赏
  • 举报
回复
太晕了,没明白意思
熙风 2012-07-05
  • 打赏
  • 举报
回复
在ComboBox下拉选项前,添加一个复选框,可以进行多选,将选择的数据????
SaintLance 2012-07-05
  • 打赏
  • 举报
回复
你自己写一个多选的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;
}
}
wangs_1 2012-07-05
  • 打赏
  • 举报
回复
就是DataGridViewComboboxColumns 列类型,
feisheng512 2012-07-05
  • 打赏
  • 举报
回复
CheckedListBox 控件 是不是和你的意思一样

111,093

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧