用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事件。