DataGridView 在下拉框添加下来事件
DataGridView中有一种下拉框式的列,给这个列添加下拉事件时需要转化一下才可以绑定下拉事件
/// <summary>
/// 服务类型
/// </summary>
DataGridViewComboBoxEditingControl cboServiceType = null;
#region 维修项目 服务类型 下拉框 事件
/// <summary>
/// 设置下拉框值改变时的处理
/// 作者“;李德彦
/// 时间:2015年12月7日
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void dgv_tb_maintain_three_guaranty_item_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
try
{
if (dgv_tb_maintain_three_guaranty_item.CurrentCell.OwningColumn == dgv_cbx1_WORK_SERVICE_TYPE)
{
cboServiceType = (DataGridViewComboBoxEditingControl)e.Control;
cboServiceType.SelectedIndexChanged += new EventHandler(cboServiceType_SelectedIndexChanged);
}
}
catch (Exception ex)
{
GlobalStaticObj.GlobalLogService.WriteLog(LocalOperation.GetStringByKey("sanbaofuwudantianjiamingxiyichang", "三包服务单,添加明细事件异常:") + ex.Message);
} }
/// <summary>
/// 服务类型改变事件
/// 作者:李德彦
/// 时间:2015年12月7日
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
void cboServiceType_SelectedIndexChanged(object sender, EventArgs e)
{
if (cboServiceType == null)
{
return;
}
if (cboServiceType.SelectedItem != null)
{
//当服务类型为“标准服务”时,行金额显示为具体数值,当服务类型为“宇通服务”和“其他服务”时,行金额显示0
DataRowView dr = (DataRowView)cboServiceType.SelectedItem;
dgv_tb_maintain_three_guaranty_item.CurrentRow.Cells[dgv_cbx1_WORK_SERVICE_TYPE.Name].Value = dr["dic_name"];
dgv_tb_maintain_three_guaranty_item.CurrentRow.Cells[dgv_cbx1_WORK_SERVICE_TYPE.Name].Tag = dr["dic_code"];
if (dgv_tb_maintain_three_guaranty_item.CurrentRow.Cells[dgv_cbx1_WORK_SERVICE_TYPE.Name].Tag.ToString() == DbDic2Enum.OSN_SERVICE_TYPE_01)//标准服务
{
//工时单价
string strfixed = string.Empty;
if (dgv_tb_maintain_three_guaranty_item.CurrentRow.Cells[dgv_txt1_WORK_FIXED.Name].Value!=null && !string.IsNullOrEmpty(dgv_tb_maintain_three_guaranty_item.CurrentRow.Cells[dgv_txt1_WORK_FIXED.Name].Value.ToString()))
{
strfixed = dgv_tb_maintain_three_guaranty_item.CurrentRow.Cells[dgv_txt1_WORK_FIXED.Name].Value.ToString();
}
string strtime = string.Empty;
if (dgv_tb_maintain_three_guaranty_item.CurrentRow.Cells[dgv_txt1_WORK_TIME.Name].Value!= null && !string.IsNullOrEmpty(dgv_tb_maintain_three_guaranty_item.CurrentRow.Cells[dgv_txt1_WORK_TIME.Name].Value.ToString()))
{
//工时
strtime = dgv_tb_maintain_three_guaranty_item.CurrentRow.Cells[dgv_txt1_WORK_TIME.Name].Value.ToString();
}
double doufixid, doutime,douretult = 0.00; if(double.TryParse(strfixed,out doufixid) && double.TryParse(strtime,out doutime))
{
douretult = doufixid * doutime;
} //行金额显示为具体数值 不需要保存两位小数,不需要四舍五入
dgv_tb_maintain_three_guaranty_item.CurrentRow.Cells[dgv_txt1_WORK_AMOUNT.Name].ReadOnly = true;
dgv_tb_maintain_three_guaranty_item.CurrentRow.Cells[dgv_txt1_WORK_AMOUNT.Name].Value = douretult; }
else
{
//行金额显示0
dgv_tb_maintain_three_guaranty_item.CurrentRow.Cells[dgv_txt1_WORK_AMOUNT.Name].Value = 0;
dgv_tb_maintain_three_guaranty_item.CurrentRow.Cells[dgv_txt1_WORK_AMOUNT.Name].ReadOnly = true;
}
}
}
/// <summary>
/// 结束编辑
/// 作者:李德彦
/// 时间:2015年12月7日
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void dgv_tb_maintain_three_guaranty_item_CellEndEdit(object sender, DataGridViewCellEventArgs e)
{
try
{
if (cboServiceType != null)
{
cboServiceType.SelectedValueChanged -= new EventHandler(cboServiceType_SelectedIndexChanged);
cboServiceType = null;
}
}
catch (Exception ex)
{
GlobalStaticObj.GlobalLogService.WriteLog(LocalOperation.GetStringByKey("sanbaofuwuzengjiachuangtidanyuangejieshuyichang", "三包服务增加窗体,单元格结束编辑事件异常:") + ex.Message);
}
}
#endregion
DataGridView 在下拉框添加下来事件的更多相关文章
- 给datagridview的下拉框添加valueChange事件
修改datagridview的EditMode属性为EdutOnEnter,否则需要点2次以上才出现下拉框 1.给DataGridView添加EditingControlShowing事件: 2.编辑 ...
- Silverlight中文本框添加回车事件后,换行无法清除的解决方法
在开发Silverlight的项目中,为了更好的用户体验,我们常要给一些控件添加一些快捷键.然而,在Silverlight中当用户回车提交后,光标停留在文本框的第二行怎么也清除不掉,经过一段时间研究, ...
- JS Div滚动,下拉框添加属性,年月日下拉条
创建某一下拉菜单的项: str = str+"<option value='"+i+"'>"+i+"</option>&quo ...
- LayUI中select下拉框选中触发事件
代码: var form = layui.form, layer = layui.layer; // 监听 $(document).ready(function() { // select下拉框选中触 ...
- 关于下拉框的onchange事件和onclick选择value值。
下拉框的onchange事件和onclick,一般最好都选择onchange事件,onclick可能会不兼容有些浏览器. 下面是代码: <!DOCTYPE html><html la ...
- 商品类型的下拉框绑定一个事件,通过ajax获取属性
html代码这么写 <!-- 商品属性 --> <table cellspacing="1" cellpadding="3" width=&q ...
- Vue 下拉框值变动事件传多个参数
在使用 Vue 进行开发时,下拉框值变动事件 @change 是很常用的. 其传参一般分为两种方式:默认传参和自定义传参. 默认传参 @change 默认会传选中项标识的参数,在传参处不用定义,在方法 ...
- datagridview下拉框
下面介绍Winform中DataGridView的DataGridViewComboBoxColumn的使用方法: //首先获取数据源 //自己建立的静态数据源,你也可以从数据库读取 DataTabl ...
- select下拉框选择触发事件
我一直以来都认为,select 下拉框选择对选项 options 使用 onclick 注册事件即可,如下: <select> <option value="0" ...
随机推荐
- docker版wordpress
拉取wordpress镜像 docker pull wordpress:latest 创建mysql 容器docker run --name wordpress-mysql -e MYSQL_ROOT ...
- 前端JS常用字符串处理实例
字符串处理常常用在处理服务器回传的数据.动态拼接生成html等,是前端面试的必考题. 我觉得字符串处理这种常用到的,一定要了然于心,不然用到时急急忙忙去翻手册费半天. 入正题,首先提出平常遇到的几个需 ...
- 【ASP.NET】利用Nuget打包package——命令行方式
通过命令行 官方说明,可以参考:creating-and-publishing-a-package 如果你希望可以使用图形界面的方式,请参考这篇文章 打包dll 使用如下的命令: nuget ...
- linux 环境变量
电脑中必不可少的就是操作系统.而Linux的发展非常迅速,有赶超微软的趋势.这里介绍Linux的知识,让你学好应用Linux系统.比如要把/etc/apache/bin目录添加到PATH中,方法有三: ...
- Swift3新特性汇总
之前 Apple 在 WWDC 上已将 Swift 3 整合进了 Xcode 8 beta 中,而本月苹果发布了 Swift 3 的正式版.这也是自 2015 年底Apple开源Swift之后,首个发 ...
- PDF虚拟打印机
1.安装福昕PDF阅读器,自己就会安装上PDF虚拟打印机 2.通过office2010之后版本中自带的另存为功能转换为pdf 3.pdf虚拟打印机工具:工具1:http://www.win2pdf.c ...
- Android studio安装
1.首先上甲骨文公司的官方网站下载JDK的安装包,根据自己电脑的操作系统选择正确的版本下载.不知道下载地址的同学可以百度一下很快就能搜到.下载还的安装包如下图所示. 2.点击下载好的JDK安装程序,百 ...
- oracle‘s package,function,proceture编译时无响应(解决)
在对Procedure.Function或Package进行Debug时,如果长时间没有操作,公司的防火墙会杀掉会话连接.这个时候数据库不会主动的释放会话的资源,如果再次对Procedure.Func ...
- OC与Swift单例
OC: +(instancetype)shareNetworkTools{ static id instance; static dispatch_once_t onceToken; //onceTo ...
- DIV+CSS中标签dl dt dd常用的用法
转自:http://smallpig301.blog.163.com/blog/static/9986093201010262499229/ < dl>< /dl>用来创建一个 ...