zoukankan      html  css  js  c++  java
  • C# winform datagridview 内嵌控件值改变后立即触发事件,而不需要离开该单元格时才触发,此时需要用到dgv_CurrentCellDirtyStateChanged事件

    以下是参考代码

            //datagridview内嵌控件值修改事件
            private void dgv_CurrentCellDirtyStateChanged(object sender, EventArgs e)
            {
                if (dgv.IsCurrentCellDirty)
                {
                    dgv.CurrentCellDirtyStateChanged -= dgv_CurrentCellDirtyStateChanged;
                    dgv.CommitEdit(DataGridViewDataErrorContexts.Commit);
                    dgv.CurrentCellDirtyStateChanged += dgv_CurrentCellDirtyStateChanged;
                    c = dgv.CurrentCellAddress.X;
                    r = dgv.CurrentCellAddress.Y;
                    DataGridViewComboBoxCell cbbCellContorlType = (DataGridViewComboBoxCell)dgv.Rows[r].Cells["innerContorlType"];
                    DataGridViewComboBoxCell cbbCellDefaultValue = (DataGridViewComboBoxCell)dgv.Rows[r].Cells["defaulValue"];
                    DataGridViewCheckBoxCell cbCell = (DataGridViewCheckBoxCell)dgv.Rows[r].Cells["isEdit"];
                    switch (dgv.Columns[c].Name)
                    {
                        case "isEdit":
                            #region 修改是否可编辑
                            if (!bool.Parse(cbCell.EditedFormattedValue.ToString()))
                            {
                                cbbCellContorlType.Value = "";
                                cbbCellContorlType.ReadOnly = true;
                                cbbCellDefaultValue.Value = "";
                                cbbCellDefaultValue.ReadOnly = true;
                            }
                            else
                            {
                                cbbCellContorlType.ReadOnly = false;
                                cbbCellContorlType.Value = "TextBox";
                                cbbCellDefaultValue.ReadOnly = false;
                                cbbCellDefaultValue.Value = "";
                            }
                            #endregion 修改是否可编辑
                            break;
                        case "defaulValue":
                            #region 修改控件类型
                            string ctrlType = cbbCellContorlType.Value.ToString();
                            string ctrlItem = cbbCellDefaultValue.Value.ToString();
                            if (ctrlItem == "增加值…")
                            {
                                switch (ctrlType)
                                {
                                    case "DropDownList":
                                        #region DropDownList
                                        frmddl.Show();
                                        frmddl.tbDDL.Clear();
                                        foreach (string item in cbbCellDefaultValue.Items)
                                        {
                                            int n = cbbCellDefaultValue.Items.IndexOf(item);
                                            if (n > 1)
                                            {
                                                if (n == 2)
                                                    frmddl.tbDDL.Text += item;
                                                else
                                                    frmddl.tbDDL.Text += "
    " + item;
                                            }
                                        }
                                        frmddl.btnConfirm.Click += btnConfirm_Click;
                                        #endregion DropDownList
                                        break;
                                    case "ImageButton":
                                        #region ImageButton
                                        frmbtn.Show();
                                        frmbtn.btnConfirmImage.Click += btnConfirmImage_Click;
                                        #endregion ImageButton
                                        break;
                                }
                            }
                            #endregion 修改控件类型
                            break;
                        default:
                            break;
                    }
                }
            }
  • 相关阅读:
    计算机硬件介绍
    SC-控制Windows服务的命令
    SQL Server 2008中的Service SID 介绍
    内置系统账户:Local system/Network service/Local Service 区别
    用于sql server启动的账户
    sql server常见服务
    oracle和sql server的区别(1)
    架构设计学习(一)
    web项目分层设计
    封装继承多态
  • 原文地址:https://www.cnblogs.com/swtool/p/3734766.html
Copyright © 2011-2022 走看看