有一个dataGridView ,有一列是DataGridViewComboBoxColumn 。用动态绑定,在绑定数据的时候。我们也给这一列绑定数据

在dataGridView的RowsAdded事件中写代码

 
        /// <summary>
/// 添加新行
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void dgvGoodsType_RowsAdded(object sender, DataGridViewRowsAddedEventArgs e)
{
DataTable dt = DAL.SQLHelper.Adapter("select type from OrderType");
       //这里的 "T_分类" 是DataGridViewComboBoxColumn列名。
DataGridViewComboBoxColumn cbb = dgvGoodsType.Columns["T_分类"] as DataGridViewComboBoxColumn;
if (cbb != null)
{
cbb.DefaultCellStyle.NullValue = lbType.Text;//显示默认值 根据自己的需求改
cbb.DataPropertyName = "type";
cbb.ValueMember = "type";
cbb.DisplayMember = "type";
cbb.DataSource = dt;
}
}
 

这里的DataGridViewComboBoxColumn 默认显示的下拉框,选择时需要点击三次,第一次选中单元格,第二次启用编辑,第三次打开下拉框。如果需要一次点击打开下拉框,可以启用DataGridView的CellEnter()事件,代码如下:

 
       private void dgvGoodsType_CellEnter(object sender, DataGridViewCellEventArgs e)
{
//实现单击一次显示下拉列表框
if (dgvGoodsType.Columns[e.ColumnIndex] is DataGridViewComboBoxColumn && e.RowIndex != -1)
{
SendKeys.Send("{F4}");
}
}
 

接下来我们给DataGridViewComboBoxColumn添加选择事件。当我们选择时。触发事件。需要在EditingControlShowing事件里面写。如下:

 
        ComboBox cbo = new ComboBox();

        private void dgvGoodsType_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
//判断相应的列
//dgvGoodsType.Tag = dgvGoodsType.CurrentCell.RowIndex; //保存索引值 if (dgvGoodsType.CurrentCell.OwningColumn.Name == "T_分类" && dgvGoodsType.CurrentCell.RowIndex != -1)
{
cbo = e.Control as ComboBox; //保存当前的事件源。为了触发事件后。在取消
cbo.SelectedIndexChanged += new EventHandler(cbo_SelectedIndexChanged);
}
}
void cbo_SelectedIndexChanged(object sender, EventArgs e)
{
ComboBox combox = sender as ComboBox;
        //这里就可以写。触发后是逻辑代码
MessageBox.Show(combox.Text);
        
      //combox.Text和cbo.Text获取的值是相同的
      
//做完处理,须撤销动态事件。如果不撤销会遇到什么问题。你可以自己试试
cbo.SelectedIndexChanged -= new EventHandler(cbo_SelectedIndexChanged);
        //或者
      combox.SelectedIndexChanged -= new EventHandler(cbo_SelectedIndexChanged);
}
 

正如上面说的。如果你不取消SelectedIndexChanged事件。当你触发一个ComboBox。后。你在点击第二次。会触发之前的事件。在触发当前的事件

以至于以此类推。触发事件会很多。

winform dataGridView DataGridViewComboBoxColumn 下拉框事件的更多相关文章

  1. winform dataGridView DataGridViewComboBoxColumn 下拉框事件代码

    有一个dataGridView ,有一列是DataGridViewComboBoxColumn .我用动态绑定,在绑定数据的时候.我们也给这一列绑定数据 在dataGridView的RowsAdded ...

  2. 9、JcomboBox下拉框事件监听

    9.JcomboBox下拉框事件监听 JComboBox()的事件监听类ItemListener.其范例代码如下: import java.awt.*; import java.awt.event.* ...

  3. C# DataGridView中DataGridViewComboBoxCell列,下拉框事件的处理【完美解决】

    http://blog.csdn.net/a312100321/article/details/25195311 问题:DataGridView绑定数据源之后,有一列需要用下拉框DataGridVie ...

  4. ALV屏幕捕捉回车及下拉框事件&ALV弹出框回车及下拉框事件

    示例展示: 屏幕依据输入的物料编码或下拉框物料编码拍回车自动带出物料描述: 点击弹出框,输入物料编码拍回车带出物料描述,点击确认,更新ALV: 1.创建屏幕9000,用于处理ALV弹出框: 2.针对屏 ...

  5. EXT 下拉框事件

    1. <ext:ComboBox ID="cbline" FieldLabel="平台部门来源" runat="server" Dis ...

  6. 给datagridview的下拉框添加valueChange事件

    修改datagridview的EditMode属性为EdutOnEnter,否则需要点2次以上才出现下拉框 1.给DataGridView添加EditingControlShowing事件: 2.编辑 ...

  7. winform的combox下拉框绑定数据源

    List<Site> list = new List<Site>(); foreach (DataRow srcDr in srcDt.Rows) { list.Add(new ...

  8. c# dataGridView cell添加下拉框

    应用场景: dataGridView需要某一个cell变成下拉框样式. 思路详解: dataGridVie添加固定格式的row. 代码: DataGridViewRow row = new DataG ...

  9. ComboGrid( 数据表格下拉框)

    一. 加载方式//class 加载方式<select id="box" class="easyui-combogrid" name="dept& ...

随机推荐

  1. 有关于腾讯地图服务端IP定位接口的获取当前城市的处理

    接口说明:http://apis.map.qq.com/ws/location/v1/ip 说明里面写了ip可以缺省,然并卵,经过测试的到结果并不能获取到当前城市,理由是腾讯ip库的对应ip精度没有定 ...

  2. 第三章:ES分词简单说明

    1. Index_Analyzer为索引时使用的分词器,search_Analyzer为搜索时使用的分词器 这个索引,对应的数据是下图: 数据格式是用%分隔的年份,"index_analyz ...

  3. Cocos2d-x教程(31)-TableView的滚动栏

    欢迎增加Cocos2d-x 交流群:193411763 转载时请注明原文出处 :http://blog.csdn.net/u012945598/article/details/38587659 在非常 ...

  4. 【Nodejs】使用nimble串行化回调任务

    nodejs的nimble模块可以使我们对回调任务进行串行化,它需要先安装 #npm install nimble 用法也方便,示例代码如下: //========================== ...

  5. python多线程概念

    转自:http://www.cnblogs.com/fnng/p/3489321.html 在使用多线程之前,我们首页要理解什么是进程和线程. 什么是进程? 计算机程序只不过是磁盘中可执行的,二进制( ...

  6. Mysql 环境配置查询

    Mysql 环境查询 1, 查看全部的引擎 a) Show engines 或者是进入到information_schama里面去查看ENGINES表 2, 查看当前用户 a) Select user ...

  7. SVN mime-type 笔记

    背景: 1.最近使用执行svn diff的时候发现有些文本文件无法显示: 2.浏览器会通过判断获取文件的 MIME 类型, 调用不同的客户端程序或使用不同的方式来执行.如果文件的 MIME 缺失或者有 ...

  8. 传统数据库没落,OLTP新型数据库发展火热

    參考资料: (1) <OLTP Through the Looking Glass, and What We Found There> (2) <The End of an Arch ...

  9. Windows下安装Redmine 2.5.2不全然指南

    我决定在项目中引入Redmine来管理开发任务和计划,至于Redmine的优点,请问度娘或者脑补一下. 互联网搜索到的.基本上都是旧版本号的. 1.2.1 的最多,我要新的啊,所以仅仅好自己来啦. 本 ...

  10. ValueError: Expecting property name: line 1 column 1 (char 1)

    # -*- coding: cp936 -*- #xiaodeng #python 2.7.10 import weibo s='{"name":"xiaodeng&qu ...