能不能修改某一单元格的下拉框选项

年轻的程序员小唐 2019-11-27 09:33:39

如图,因为在后台会对联系人进行一些条件限制。使得联系人的呼叫类型可选项发生变化
比如,联系人1只有3种呼叫类型选项可选
联系人2有5种呼叫类型选项可选
想要在DGV表格内实现这个功能该怎么做呢
...全文
167 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
引用 6 楼 OrdinaryCoder 的回复:
不是实例化一个单元格 而是把那个单元格转换成下拉框那个控件 然后操作这个控件 修改数据源或者其他操作

这是啥意思呢,同类型的对象不可以直接=就转换了吗。这两个已经都是cells单元格类型了呀
可否给个代码明示0.0
OrdinaryCoder 2019-11-27
  • 打赏
  • 举报
回复
不是实例化一个单元格 而是把那个单元格转换成下拉框那个控件 然后操作这个控件 修改数据源或者其他操作
  • 打赏
  • 举报
回复
引用 4 楼 OrdinaryCoder 的回复:
dgv_callout.Rows[i].Cells[2] 没有items 但是 dgv_callout.Rows[i].Cells[2]这个应该可以转成一个有items的类型 比如你图中用的下拉框 那么这个单元格 应该是可以转成下拉框的 var combox = dgv_callout.Rows[i].Cells[2] as 下拉框; 然后就可以按你的意思去添加自定义集合


我尝试使用转换的办法,实例一个新的单元格,
DataGridViewComboBoxCell col_single = new DataGridViewComboBoxCell();
col_single.Items.Clear();
col_single.Items.Add("无");
col_single.Items.Add("呼叫");
col_single.Items.Add("消息");

但是他有如下错误提示
OrdinaryCoder 2019-11-27
  • 打赏
  • 举报
回复
dgv_callout.Rows[i].Cells[2] 没有items 但是 dgv_callout.Rows[i].Cells[2]这个应该可以转成一个有items的类型 比如你图中用的下拉框 那么这个单元格 应该是可以转成下拉框的 var combox = dgv_callout.Rows[i].Cells[2] as 下拉框; 然后就可以按你的意思去添加自定义集合
  • 打赏
  • 举报
回复
引用 2 楼 exception92 的回复:
数据类里增加呼叫类型集合,根据你描述的场景添加不同的选项即可。

dgv_callout.Rows[i].Cells[2].Items,单元格没有Items属性我该怎么把选项集合添加进去呢,因为我是要改某一单元格而不是某一列
exception92 2019-11-27
  • 打赏
  • 举报
回复
数据类里增加呼叫类型集合,根据你描述的场景添加不同的选项即可。
  • 打赏
  • 举报
回复
自顶一下,急求思路
  • 打赏
  • 举报
回复
引用 11 楼 datafansbj 的回复:
在 CellEnter 事件里,如果选择的是下拉列表单元格,就修改下拉列表的数据源。

已采纳,谢谢。不过忘记给分。。。抱歉
  • 打赏
  • 举报
回复
引用 13 楼 白龙马5217 的回复:
[quote=引用 1 楼 年轻的程序员小唐 的回复:]
自顶一下,急求思路

呼叫类型获取输入焦点后 按照联系人权限过滤[/quote]
是的,主要就是DGV控件的处理问题,条件都有了,就是实施的问题了,现已处理成功
白龙马5217 2019-11-27
  • 打赏
  • 举报
回复
引用 1 楼 年轻的程序员小唐 的回复:
自顶一下,急求思路
呼叫类型获取输入焦点后 按照联系人权限过滤
  • 打赏
  • 举报
回复
引用 9 楼 兔子家族-二哥 的回复:
DataTable dt =new DataTable("data");
dt.Columns.Add("id");
dt.Columns.Add("name");

DataRow dr = dt.NewRow();
dr["id"] = "1";
dr["name"] = "py";
dt.Rows.Add(dr);

DataGridViewComboBoxCell cmbx = (DataGridViewComboBoxCell) dataGridView1.Rows[0].Cells["sys"];
cmbx.DataSource = dt;
cmbx.DisplayMember = "id";
cmbx.ValueMember = "name";

已成功,感谢
datafansbj 2019-11-27
  • 打赏
  • 举报
回复
在 CellEnter 事件里,如果选择的是下拉列表单元格,就修改下拉列表的数据源。
  • 打赏
  • 举报
回复
sys 是你 下拉框列 你加的时候 你自己起的名字
  • 打赏
  • 举报
回复
DataTable dt =new DataTable("data");
dt.Columns.Add("id");
dt.Columns.Add("name");

DataRow dr = dt.NewRow();
dr["id"] = "1";
dr["name"] = "py";
dt.Rows.Add(dr);

DataGridViewComboBoxCell cmbx = (DataGridViewComboBoxCell) dataGridView1.Rows[0].Cells["sys"];
cmbx.DataSource = dt;
cmbx.DisplayMember = "id";
cmbx.ValueMember = "name";
  • 打赏
  • 举报
回复
引用 6 楼 OrdinaryCoder 的回复:
不是实例化一个单元格 而是把那个单元格转换成下拉框那个控件 然后操作这个控件 修改数据源或者其他操作


我实验验证了一下,我是把新设计的单元格循环添加进dgv控件里去了,所以会提示已属于某网格

110,535

社区成员

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

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

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