private
void
dgvSelectFun_EditingControlShowing
(
object
sender
,
DataGridViewEditingControlShowingEventArgs
e
)
DataGridView
dgv
=
sender
as
DataGridView
;
if
(
dgv
.
CurrentCell
.
GetType
(
)
.
Name
==
"DataGridViewComboBoxCell"
&&
dgv
.
CurrentCell
.
RowIndex
!=
-
1
)
DataGridViewComboBoxCell
combox
=
dgv
.
CurrentCell
as
DataGridViewComboBoxCell
;
combox
.
DataSource
=
FunsLib
[
dgv
.
CurrentCell
.
RowIndex
]
.
FuncSnALL
;
(
e
.
Control
as
ComboBox
)
.
SelectedIndexChanged
+=
new
EventHandler
(
ComboBox_SelectedIndexChanged
)
;
public
void
ComboBox_SelectedIndexChanged
(
object
sender
,
EventArgs
e
)
ComboBox
combox
=
sender
as
ComboBox
;
combox
.
Leave
+=
new
EventHandler
(
combox_Leave
)
;
if
(
combox
.
SelectedItem
!=
null
)
Thread
.
Sleep
(
100
)
;
catch
(
Exception
ex
)
MessageBox
.
Show
(
ex
.
Message
)
;
public
void
combox_Leave
(
object
sender
,
EventArgs
e
)
ComboBox
combox
=
sender
as
ComboBox
;
combox
.
SelectedIndexChanged
-=
new
EventHandler
(
ComboBox_SelectedIndexChanged
)
;
方法2:
private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
DataGridView dgv = sender as DataGridView;
//判断相应的列
if (dgv.CurrentCell.GetType().Name == "DataGridViewComboBoxCell" && dgv.CurrentCell.RowIndex != -1)
//此处绑定数据源,或者直接清除下拉列表,重新添加
DataGridViewComboBoxCell combox = dgv.CurrentCell as DataGridViewComboBoxCell;
combox.DataSource = FunsLib[i].FuncSnALL;//FunsLib:List<List<string>>
//combox.Items.Clear();
//combox.Items.AddRange(new string[] { "A1.", "A2." });//此处需要判断,根据对应行号,添加对应下拉列表,在此不再赘述
c# datagridview列形式为Combobox,每行下拉选项不一样方法1: /// <summary> /// 首先给这个DataGridView加上EditingControlShowing事件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param>
灵活:数据源、下拉框内显示的列、列名、可搜索关键字等可自由定义
方便:可输可选/支持键盘操作/模糊过滤/自动完成匹配
标准:通过继承combobox实现,可单独使用,也可嵌入datagridview使用
水平有限,欢迎大家多提宝贵意见,共同学习
本控件以“随风飘散”在 http://www.cnblogs.com/CodeAnyWhere/archive/2007/09/03/880780.html中的示例代码为基础改进而来,在此感谢!.
昨天和今天在做c#datagridviewDataGridViewComboBoxColumn,为什么做了这么久,因为是总想使用datatable作为datasource进行绑定到DataGridViewComboBoxColumn上,但是实际上不能这样,而是datasource就是数据,DataGridViewComboBoxColumn只是datagridview在绑定数据后,添加到其中,它里面的数据设置值,在datasource中获取,按照某种规则,放进去即可
public partial cla..
有时需要在datagridview中设置combox输入项目,如果想要设置好的combox数据项没有combox的立体效果,只需要在输入时才出现选择下拉的效果,可以如下设置:
1 把combox列的属性display style设为nothing
2 在datgridviewer中的EditingControlShowing事件中增加如下代码
private void dgvPP...
版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。
在学习了之前的教程后,不知道大家有没有注意过,从
下拉框单元格选择的时候,总共会点三下鼠标才能选中
下拉框中的一个值:第一次选中单元格,第二次打开
下拉框,第三次才能选中值。比一般的
combobox选择多一个步骤。
要解决以上问题只需要方法很简单,当单元格获得焦点的时候,发送F4即可,具体代码如下:
DataGridView在很多时候会绑定数据源,如dgvList.DataSource = table;
这个时候要注意,如果DataGridView的某些列的数据源属性DataPropertyName设置了,但是有些没有设置,就像你想象的希望把绑定数据源的列用table显示。在绑定数据源之后的显示上,完全没有问题,很正常。
但是,其实DataGridView的列索引就变了,绑定数据源的列会往
2:替换
datagridview列控件内容 +自定义
下拉控件
private void
dataGridView1_CurrentCellChanged(object sender, EventArgs e)
if (
dataGridView1.CurrentCell == null) return;