DataGridView DataGridViewComboBoxColumn列的clear方法无效!

FirstMrWu 2011-11-10 06:54:30
插入列:

DataGridViewComboBoxColumn c = new DataGridViewComboBoxColumn();
c.Name = "deName";
c.HeaderText = "数据元名称";
c.Width = 100;
dataGridView.Columns.Insert(2, c);


if (((DataGridViewComboBoxCell)dataGridView.Rows[e.RowIndex].Cells["deName"]).Items.Count > 0)
{

((DataGridViewComboBoxCell)dataGridView.Rows[e.RowIndex].Cells["deName"]).Items.Clear();
}

然后在删除其中的项的时候不起作用啊。为什么?如何删除?remove方法也不行啊。
...全文
143 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
FirstMrWu 2011-11-11
  • 打赏
  • 举报
回复
remove也没效果。。。但也不抛异常。



int a = ((DataGridViewComboBoxCell)dataGridView.Rows[e.RowIndex].Cells["deName"]).Items.Count;


if (a > 0)
{
for (int j = a-1; j >= 0; j--)
{
try
{
MessageBox.Show(a.ToString());
((DataGridViewComboBoxCell)dataGridView.Rows[e.RowIndex].Cells["deName"]).Items.RemoveAt(j);
}
catch(Exception e1)
{
MessageBox.Show(e1.Message);
}
}
}
FirstMrWu 2011-11-11
  • 打赏
  • 举报
回复
增加的部分如下:

for (int i = 0; i < list.Count; i++)//取出deid和cname 加入comobox
{
string s = list[i].ToString();
string id = s.Remove(11);//标准id
string name = s.Remove(0, 13);
((DataGridViewComboBoxCell)dataGridView.Rows[e.RowIndex].Cells["deName"]).Items.Add(name);
//hs.Add(name, id);
}
string s1 = list[0].ToString();
string name1 = s1.Remove(0, 13);
((DataGridViewComboBoxCell)dataGridView.Rows[e.RowIndex].Cells["deName"]).Value = name1;//只是显示的效果其实并不是add的001 这个要和第一个值一样!!!

我是放在一个list中,读取list中内容,然后取出我想要的部分,再加入。
sdl2005lyx 2011-11-11
  • 打赏
  • 举报
回复
那把如何增加的那部分代码贴出来看看。。。
FirstMrWu 2011-11-11
  • 打赏
  • 举报
回复
4楼的大哥,这样也不行啊。刚试了。
原来那个列的item.count还是10条10条的增加的,改成这个好,直接20 30 40条这样的增加了。
快崩溃了。。。。
sdl2005lyx 2011-11-11
  • 打赏
  • 举报
回复
这样用:


((DataGridViewComboBoxColumn)dataGridView1.Columns[列索引]).Items.Clear();
FirstMrWu 2011-11-11
  • 打赏
  • 举报
回复
回1楼:datagridview的中其他列的数据是绑定的,但这列不是。
回2楼:这样转换以后,可以添加数据,即((DataGridViewComboBoxCell)dataGridView.Rows[e.RowIndex].Cells["deName"]).Items.add("001")是可以的。
如果不这么写,有没有别的更好的方法?
sdl2005lyx 2011-11-11
  • 打赏
  • 举报
回复
解决就好。。。
FirstMrWu 2011-11-11
  • 打赏
  • 举报
回复
各位,解决了。用clear()和remove()是可以的。是我程序另外地出问题了。
xienb 2011-11-10
  • 打赏
  • 举报
回复
((DataGridViewComboBoxCell)dataGridView.Rows[e.RowIndex].Cells["deName"]).Items.Clear();
不是这么写的吧 你搞个强制转换算是什么意思
www_1_1 2011-11-10
  • 打赏
  • 举报
回复
你的数据是绑定的吗???是的话好像是不能,我记得是,但不肯定,友情帮顶

110,561

社区成员

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

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

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