好心人帮忙,datagridviewcombobox 问题

zfs346464261 2007-06-20 03:40:44
最近做项目遇到个问题不知道怎么把datagridview中的combobox列变为可写的
修改readonly属性不管用!
谢谢了
...全文
386 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
zfs346464261 2007-06-21
  • 打赏
  • 举报
回复
谢谢各位已经解决了这样做就可以了(可输入+选择):
private void dataGridView1_CellValidating_1(object sender, DataGridViewCellValidatingEventArgs e)
{
if (e.ColumnIndex == 2)
{
DataGridViewComboBoxCell comboBoxColumn = (DataGridViewComboBoxCell)dataGridView1[e.ColumnIndex, e.RowIndex];
if (!comboBoxColumn.Items.Contains(e.FormattedValue))
{
//DataGridViewComboBoxCell.ObjectCollection oc = (DataGridViewComboBoxCell.ObjectCollection)comboBoxColumn.Items.GetEnumerator();
//oc.AddRange(e.FormattedValue);
//comboBoxColumn.Items.Clear();
//comboBoxColumn.Items.Insert(0, e.FormattedValue);
comboBoxColumn.Items.Add(e.FormattedValue);
comboBoxColumn.Value = e.FormattedValue;

}
}

}



void cb_SelectedIndexChanged(object sender, EventArgs e)
{
//MessageBox.Show("Selected index changed");
}

private void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
if (this.dataGridView1.CurrentCellAddress.X == 2)
{
ComboBox cb = e.Control as ComboBox;
if (cb != null)
{
cb.DropDownStyle = ComboBoxStyle.DropDown;
cb.SelectedIndexChanged -= new EventHandler(cb_SelectedIndexChanged);
cb.SelectedIndexChanged += new EventHandler(cb_SelectedIndexChanged);
}
}
}
Terran5 2007-06-20
  • 打赏
  • 举报
回复
combobox.add("0","value1")
combobox.add("1","value2")
combobox.selectindx=0
wzuomin 2007-06-20
  • 打赏
  • 举报
回复
我的博客里有一篇文章介绍如何自定义列
http://blog.csdn.net/wzuomin/archive/2007/06/15/1653619.aspx

不过这个列是一个下拉树的ComBoBox列,你可以把DataGridViewTreeViewEditingControl从ComBoBox继承,类ComboBoxTreeView就不需要了。呵呵
wzuomin 2007-06-20
  • 打赏
  • 举报
回复
这个还真不知道如何修正
不过你可以自己写一个ComBoxBox列

16,722

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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