原創|其它|編輯:郝浩|2012-10-15 16:21:48.000|閱讀 6920 次
概述:本文以操作畫面為主,文字與代碼為輔,對GridContro的事件進行直觀的匯總詳解,非常精細實用。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
本文以操作畫面為主,文字與代碼為輔,對GridContro的事件進行直觀的匯總詳解,非常精細實用。
private void gridView1_RowCellClick(object sender, DevExpress.XtraGrid.Views.Grid.RowCellClickEventArgs e) { if (e.Button == MouseButtons.Left) { //鼠標的那個按鈕按下 } if (e.Clicks == 2) { //鼠標點擊次數 } if (e.Delta > 0) { //鼠標滾輪滾動方向 } if (e.X > 0 & e.Y > 0) { //鼠標的坐標 } if (e.RowHandle > 0) { //點擊的行號 } if (e.CellValue != null) { //點擊的單元格中的值 } if (e.Column != null) { //點擊的單元格所屬列信息 } } private void gridView1_RowClick(object sender, DevExpress.XtraGrid.Views.Grid.RowClickEventArgs e) { if (e.Button == MouseButtons.Left) { //鼠標的那個按鈕按下 } if (e.Clicks == 2) { //鼠標點擊次數 } if (e.Delta > 0) { //鼠標滾輪滾動方向 } if (e.X > 0 & e.Y > 0) { //鼠標的坐標 } if (e.RowHandle > 0) { //點擊的行號 } }
重新繪制列樣式事件:gridView1_CustomDrawCell
private void gridView1_CustomDrawCell(object sender, DevExpress.XtraGrid.Views.Base.RowCellCustomDrawEventArgs e) { if (e.Column.FieldName == "數據") { GridCellInfo GridCellInfo = e.Cell as GridCellInfo; if (GridCellInfo.IsDataCell && double.Parse(GridCellInfo.CellValue.ToString()) <= -30) e.Appearance.BackColor = Color.Yellow; else if (GridCellInfo.IsDataCell && double.Parse(GridCellInfo.CellValue.ToString()) > -30 && double.Parse(GridCellInfo.CellValue.ToString()) <= -50) e.Appearance.BackColor = Color.Green; else if (GridCellInfo.IsDataCell && double.Parse(GridCellInfo.CellValue.ToString()) > -50) e.Appearance.BackColor = Color.Red; } }
重新計算備注事件:gridView1_CalcPreviewText
private void gridView1_CalcPreviewText(object sender, DevExpress.XtraGrid.Views.Grid.CalcPreviewTextEventArgs e) { DataRow dr = gridView1.GetDataRow(e.RowHandle); e.PreviewText = dr["name"].ToString() + " : " + dr["aihao"].ToString(); }
注意:GridView中大多數事件我們都會并且必須用到e這個參數,我們可以從e這個參數中獲取很多信息,包括單元格、列、行、表格、GridControl的信息。我們要根據事件的意義來了解這個e是單元格級別的,或是行級別的,或是列級別的等,因為我們可以獲取e的層級以上的信息,層級以下的信息就不能獲取了。 e中的屬性都是大同小異,其中最常用的是e.RowHandle這個屬性,它代表行號的意思,通過gridView1.GetDataRow(e.RowHandle)方法可以獲得這一行的數據行DataRow;并以此來做很多操作。
上述我們也說過組行的RowHandle為負數,我們通過GetDataRow獲取數據行是錯誤的,這時我們通過gridView1.GetDataRowHandleByGroupRowHandle(e.RowHandle);方法來轉化,這時得到的數據行是該組的第一行數據。在此我們需特別注意。如果加入上述轉換,我們選擇數據時每組第一行數據就會重復,我們要做去重復處理。
皮膚設置
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自:nanchuan的專欄-CSDN