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" ...
 
随机推荐
- 关于angularjs指令
			
一个指令用来引入新的HTML语法.指令是DOM元素上的标记,使元素拥有特定的行为.举例来说,静态的HTML不知道如何来创建和展现一个日期选择器控件.让HTML能识别这个语法,我们需要使用指令.指令通过 ...
 - Iterm2 ssh tab title
			
vim ~/.bashrc 添加一行 p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; line-height: 19.0px; font: 13.0px "H ...
 - Debian/Ubuntu server上安装安全更新
			
原始链接:http://serverfault.com/questions/270260/how-do-you-use-apt-get-to-only-install-critical-securit ...
 - Xml序列化去掉命名空间,去掉申明
			
#region 序列化 /// <summary> /// 序列化 /// </summary> /// <par ...
 - jquery的checkbox,radio,select等方法总结
			
jquery的checkbox,radio,和select是jquery操作的一个难点和重点,很多前端新手对其了解不是很透彻.时间久了不用,我在写的时候有时也难免对某些操作支支吾吾,记不清楚,现在,对 ...
 - python 3.5: TypeError: a bytes-like object is required, not 'str'
			
出现该错误往往是通过open()函数打开文本文件时,使用了'rb'属性,如:fileHandle=open(filename,'rb'),则此时是通过二进制方式打开文件的,所以在后面处理时如果使用了s ...
 - 学习CSS 笔记
			
1.动态修改div的大小 Html: <div> Hello </div> css: div { resize:both; overflow:auto; } 2. box-si ...
 - Sublime Text 2 设置tab空格
			
打开Sublime Text 2 英文版:选择Preference-defalut 中文版:选择Preference-键绑定-默认 找到"translate_tabs_to_spaces&q ...
 - C# 委托&事件
			
之前关于事件这块理解一直不是很好,正好有空复习,整理记录一下 委托:可以将与自身形式相同(返回参数相同:传入参数相同)的方法当成参数进行传递. using UnityEngine; using Sys ...
 - not in 和 not EXISTS  的区别
			
1.in和exists in是把外表和内表作hash连接,而exists是对外表作loop循环,每次loop循环再对内表进行查询,一直以来认为exists比in效率高的说法是不准确的.如果查询的两个表 ...