台灣最大程式設計社群網站
線上人數
992
 
會員總數:246142
討論主題:189725
歡迎您免費加入會員
討論區列表 >> VB.NET >> 如何取得 DataGridView 的 ColumnHeader 按右鍵時的 Index
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
如何取得 DataGridView 的 ColumnHeader 按右鍵時的 Index
價值 : 100 QP  點閱數:426 回應數:7
樓主

P陳
初級顧問
14941 186
8956 2228
發送站內信


各位好:
在 datagridview 的Column 2 的Header 按右鍵後,有啟動相對應的動作.
請問一下各位,該如何取得在Column Header 按右鍵時的 Column Index。
用 DataGridView1.CurrentCell.ColumnIndex 取到的都是 0,請問該如何得知按下右鍵時的 ColumnIndex。



搜尋相關Tags的文章: [ ColumnHeader 右鍵 ] ,
本篇文章發表於2019-10-11 20:24
1樓
最有價值解答

HB
檢舉此回應
看看是否符合所需:

本篇文章回覆於2019-10-13 10:39
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
不錯的參考

Ader Chen
檢舉此回應

請試試看: (兩個事件共用區域變數)

本篇文章回覆於2019-10-13 10:39
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
作者回應

P陳
檢舉此回應
TO HB、 Ader Chen:
   謝謝回應,經測試的結果,右鍵不會觸發 HeaderMouseclick 及 CellEnter 這二個事件。

Private Sub DataGridView1_MouseDown(sender As Object, e As MouseEventArgs) Handles DataGridView1.MouseDown
If e.Button = MouseButtons.Right Then <--- 但只能知道有被按下右鍵,卻無法知道是在那個 Columns 及 Rows 上按下的。
本篇文章回覆於2019-10-13 23:15
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
回應

Ader Chen
檢舉此回應

我試過可以才 po 上來的說...
2 樓程式碼第 2 行是 ColumnHeaderMouseClick 事件, 才有 e.ColumnIndex 知道是哪個 Column.
不是 MouseDown 喔
本篇文章回覆於2019-10-13 23:57
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
作者回應

P陳
檢舉此回應
Ader Chen:
經測結果 DataGridView1.ColumnHeaderMouseClick 我的電腦按右鍵時不會被觸發。
但會跳出Contextmenu 來讓使用者選排序方式(大 小 不排等等)

所以作法要先按一下左鍵來取得要排序的 e.ColumnIndex,再按右鍵來啟動 Contextmenu 來選排序方式。
但使用者如果忘了先按左鍵,就直接按右鍵的話,也會出現選單,只是不一定是本次按下右鍵時的欄位,而是上次按左鍵時的欄位。
本篇文章回覆於2019-10-14 07:29
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
作者回應

P陳
檢舉此回應
找到方法了 用 CellMouseMove 來取得 e.ColumnIndex,e.ColumnIndex,再按右鍵即可。

本篇文章回覆於2019-10-14 07:32
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
7樓
作者回應

P陳
檢舉此回應
經測試確定可以了,謝謝HB、Ader Chen 的協助
本篇文章回覆於2019-10-14 07:49
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.