程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> Dev GridView RowCellClick事件與MouseDown事件

Dev GridView RowCellClick事件與MouseDown事件

編輯:關於C++
GridView處於可編輯狀態,左鍵點擊默認為“進入編輯”。
將GridView的OptionsColumn.AllowEdit設置為false後左鍵可觸發RowCellClick。
但有時候,既希望GridView可以進行編譯,又希望可以觸發【單元格的點擊事件】,比如有需求要求在某列單元格上單擊可以彈出窗體,選擇數據並返回到GridView上,並且允許手動在GridView上修改或者輸入,那應該怎麼處理呢?

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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved