用GridView的MouseDown事件,具體代碼如下:
private void gViewActPara_MouseDown(object sender, MouseEventArgs e) { GridHitInfo hint = gViewActPara.CalcHitInfo(e.X, e.Y); if (gViewActPara.RowCount == 0 || /*記錄數大於0*/ !hint.InRowCell /*有效的單元格*/|| e.Button != MouseButtons.Left /*鼠標左鍵*/|| e.Clicks != 1 /*單擊*/ ) { return; } if (hint.Column.FieldName == "需要彈出窗體的列名及該列的FieldName") { //強轉當前行(避免鼠標點擊的行與焦點行FocusedRowHandle不一致,鼠標點擊時,焦點行FocusedRowHandle還未轉換) gViewActPara.FocusedRowHandle = hint.RowHandle; //打開窗體的代碼及處理略 //如果獲取到打開窗體的值之後,需要更新到GridView上使用 // gViewActPara.SetRowCellValue(hint.RowHandle, "需要接受值列的FieldName",從窗體獲取到的值); //使用SetRowCellValue會觸發gViewActPara_CellValueChanged事件 } }
小注:
不管這一列OptionsColumn.AllowEdit是不是false,只要這一列有MouseDown事件,就不會執行該列的RowCellClick事件。