gridview有rowcellclick事件,即單元格點選事件,但是針對列标題行以及列标題單元格卻沒有相應的事件。
在這裡使用gridview的mousedown事件。這裡同樣使用的是gridhitinfo來擷取點選位置的資訊,來判斷是否在列标題上。gridhitinfo根據滑鼠點選的x、y坐标擷取該點的相關資訊,判斷是否點選在列标題行内。
以上代碼很簡單,但是有個小問題,就是在該列右邊線拖動這一列的列寬時,也會彈出對話框,因為這裡拖動列寬也被視為點選滑鼠。這顯然不合适。解決這個問題的辦法也很簡單,就是判斷滑鼠點選位置不在右邊線向左移動一點距離(3像素)範圍内。下面對以上代碼稍加修改,就不會再有這個問題了。
方法二(同僚浩哥想出來的):