• 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;
                    }
                }
            }
  • 相关阅读:
    湘志恒善.NET 企业实训新学员必读手册
    周末电脑城有感硬件和软件价格的升降(实物图9.22更新)
    企业I期做项目之前的小例子
    商学院企业I班暑期作业 【2008年8月12日更新】
    项目公司机房升级
    android小应用帮美女更衣系列一(附源码)
    android小应用帮美女更衣系列二(附源码)
    @synthesize 和 @property
    VS2008下载地址和版本破解
    Android腾讯微薄客户端开发十三:提及篇(与我有关的微博)
  • 原文地址:https://www.cnblogs.com/swtool/p/3734766.html
Copyright © 2020-2023  润新知