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" ...
随机推荐
- IE7 自动为文件路径添加域名
对于图片等文件的路径,一般在同一个域名下的文件都会使用相对路径,但如果使用JS获取文件的路径浏览器获取到的路径都是相对路径,但IE7会自动为路径添加域名变成绝对路径... IE7下图片路径,在文件相对 ...
- XCode8目录整理后的几个警告消除,Missing file
Git目录没有及时更新导致 终端进入目录运行如下命令 git rm main.m git rm Info.plist git rm AppDelegate.h git rm AppDelegate.m ...
- C#对象先序列化然后反序列化时间丢失八小时的问题
把对象JSON序列化,然后反序列化后发现时间少了八小时.因为在东八区,所以序列的时候按照1970-01-01:08:00:00为基数取得差值,而反序列化的时候以1970-01-01:00:00:00作 ...
- angular 自定义指令 directive transclude 理解
项目中断断续续的用了下angular,也没狠下心 认真的学习.angular 特别是自定义指令这块 空白. transclude 定义是否将当前元素的内容转移到模板中.看解释有点抽象. 看解释有点抽象 ...
- IDEA tomcat乱码
在运行/调试 配置对话框的Startup/Connection面板中, 勾选Pass environment variables. 并添加一个environment variable, Name填 J ...
- Python模块之"prettytable"
Python模块之"prettytable" 摘要: Python通过prettytable模块可以将输出内容如表格方式整齐的输出.(对于用Python操作数据库会经常用到) 1. ...
- ubuntu14.04下直接修改apache2默认目录导致wordpress样式改变的解决办法
一开始看到网上有各种各样的解决方法: 第一种是直接将 sites-available目录下的000-default.conf中的下列代码: DocumentRoot /var/www/html 修改为 ...
- JSP复习整理(一)表单
好久没更了,一周完成了SRDP,一周完成了课程设计,这一周就要好好回顾回顾Java Web的学习轨迹了. 用的eclipse Mars 一.表单 start.jsp <%@ page langu ...
- [Android Pro] Scroller使用分析
reference to : http://blog.csdn.net/a910626/article/details/51548840 一.Scroller是什么? Android里 Scrolle ...
- 搭建自己的LAMP
LAMP的搭建说简单也简单,说难也不容易,如果采用一键安装也是比较容易的,但想配置自己需要的版本等等也是比较麻烦.前段时间我分别在自己的电脑和阿里云上部署了Lamp环境,以下是步骤和常出现的问题的解决 ...