C# winform datagridview 內嵌控制項值改變後立即觸發事件,而不需要離開該儲存格時才觸發,此時需要用到dgv_CurrentCellDirtyStateChanged事件

來源:互聯網
上載者:User

標籤:winform   datagridview   style   blog   class   c   

以下是參考代碼

        //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 += "\r\n" + 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;                }            }        }

 

 

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.