DevExpress GridView 列標題點選事件
GridView有RowCellClick事件,即單元格點選事件,但是針對列標題行以及列標題單元格卻沒有相應的事件。
在這裡使用GridView的MouseDown事件。這裡同樣使用的是GridHitInfo來獲取點選位置的資訊,來判斷是否在列標題上。GridHitInfo根據滑鼠點選的x、y座標獲取該點的相關資訊,判斷是否點選在列標題行內。
private void gridView_MouseDown(object sender, MouseEventArgs e)
{
//滑鼠左鍵點選
if (e.Button == MouseButtons.Left)
{
GridHitInfo info = gridView.CalcHitInfo(e.X, e.Y);
//在列標題欄內且列標題name是"colName"
if (info.InColumnPanel && info.Column.Name =="colName")
{
XtraMessageBox.Show("點選Name列標題!");
}
}
}
以上程式碼很簡單,但是有個小問題,就是在該列右邊線拖動這一列的列寬時,也會彈出對話方塊,因為這裡拖動列寬也被視為點選滑鼠。這顯然不合適。解決這個問題的辦法也很簡單,就是判斷滑鼠點選位置不在右邊線向左移動一點距離(3畫素)範圍內。下面對以上程式碼稍加修改,就不會再有這個問題了。
private void gridView_MouseDown(object sender, MouseEventArgs e)
{
//滑鼠左鍵點選
if (e.Button == MouseButtons.Left)
{
GridHitInfo gridHitInfo = gridView.CalcHitInfo(e.X, e.Y);
//在列標題欄內且列標題name是"colName"
if (gridHitInfo.InColumnPanel && gridHitInfo.Column.Name =="colName")
{
//獲取該列右邊線的x座標
GridViewInfo gridViewInfo = (GridViewInfo)this.gridView.GetViewInfo();
int x = gridViewInfo.GetColumnLeftCoord(gridHitInfo.Column) + gridHitInfo.Column.Width;
//右邊線向左移動3個畫素位置不彈出對話方塊(實驗證明3個畫素是正好的)
if (e.X < x - 3)
{
XtraMessageBox.Show("點選Name列標題!");
}
}
}
}
上面的方法轉載自:DevExpress GridView使用技巧之列標題點選事件
方法二(同事浩哥想出來的):
if (info.InColumnPanel)
{
if (gridControl1.Cursor != Cursors.Default)
{
XtraMessageBox.Show("當滑鼠在標題欄兩列之間的時候,滑鼠的樣式會發生變化");
}
else
{
//這裡面應該是點選的列標題而不是兩列之間的那部分
}
}
作者:jiankunking 出處:http://blog.csdn.net/jiankunking
相關文章
- DevExpress GridView 新增和設定右鍵選單devExpressView
- ASP.NET - GridView實現點選編輯列ASP.NETView
- 點選 Button觸發事件將GridView1 CheckBox勾選的行新增到GridView2中事件View
- GridVIew標題不換行View
- DevExpress GridView匯入匯出ExceldevExpressViewExcel
- 點選標題下拉展開二級子標題導航選單
- jq動態生成的元素(標籤)新增點選事件事件
- JS 禁用和重新啟用a標籤的點選事件JS事件
- Dev GridView RowCellClick事件與MouseDown事件devView事件
- jQuery table內容點選標題排序jQuery排序
- Swift UITableView巢狀UICollectionView點選事件衝突(點選事件穿透)SwiftUIView巢狀事件穿透
- js中根據x,y 座標模擬點選事件JS事件
- GridView全選View
- 點選事件的委派事件
- 禁止滑鼠點選事件事件
- 直播電商平臺開發,Layui給標籤新增點選事件UI事件
- ASPxGridView中Command列自定義按鈕點選事件概要View事件
- databinding的點選事件事件
- RecyclerView中item點選事件View事件
- css禁用滑鼠點選事件CSS事件
- Vue 導航 點選當前標題變色Vue
- 關於gridview改變行內容事件需要點選別的行或控制元件才能執行View事件控制元件
- GridView列相同合併View
- ListView的HeaderView包含的GridView滑動隱藏後無法點選問題分析ViewHeader
- tabbar凸起點選事件處理tabBar事件
- echarts 工具條點選事件控制Echarts事件
- MxDraw雲圖點選事件教程事件
- DataBinding中xml 點選事件XML事件
- R::shiny 點選事件-Demo事件
- Android.GridView事件監聽AndroidView事件
- 點選標題可以展開效果程式碼例項
- GridView滑鼠經過感知以及點選行彈出視窗View
- Android觸控事件(續)——點選長按事件Android事件
- Gridview中新增按鈕響應事件View事件
- RecyclerView-->點選和長按事件View事件
- 中國地圖繪製-點選事件地圖事件
- UITableView 點選事件建立UIAlertControllerUIView事件Controller
- Android--按鈕點選事件Android事件