如何在右鍵單擊上選擇datagridview行?用鼠標右鍵單擊以選擇datagridview行
8
A
回答
15
// Clear all the previously selected rows
foreach (DataGridViewRow row in yourDataGridView.Rows)
{
row.Selected = false;
}
// Get the selected Row
DataGridView.HitTestInfo info = yourDataGridView.HitTest(e.X, e.Y);
// Set as selected
yourDataGridView.Rows[info.RowIndex].Selected = true;
5
的很酷的事情是添加一個菜單上單擊鼠標右鍵,例如包含「查看客戶信息」選項,「確認最後發票」,「添加日誌條目以這個客戶端」等
你只需要添加一個ContextMenuStrip對象,添加你的菜單條目,並在DataGridView屬性中選擇它的ContextMenuStrip。
這將創建用戶權限的所有選項單擊該行中一個新的菜單,那麼所有你需要做的是讓你的法寶:)
記住,你需要傑威爾代碼得到了什麼行用戶進入,然後獲取包含客戶端ID的單元格並傳遞該信息。
希望它有助於提高你的應用程序
0
您可以使用傑威爾的代碼在你的DataGridView的MouseDown事件。
3
子類的DataGridView
並創建一個MouseDown
事件網格,
private void SubClassedGridView_MouseDown(object sender, MouseEventArgs e)
{
// Sets is so the right-mousedown will select a cell
DataGridView.HitTestInfo hti = this.HitTest(e.X, e.Y);
// Clear all the previously selected rows
this.ClearSelection();
// Set as selected
this.Rows[hti.RowIndex].Selected = true;
}
17
讓它表現類似於鼠標左鍵?例如
private void dataGridView_CellMouseDown(object sender, DataGridViewCellMouseEventArgs e)
{
if (e.Button == MouseButtons.Right)
{
dataGridView.CurrentCell = dataGridView[e.ColumnIndex, e.RowIndex];
}
}
0
你必須做兩件事情:
清除所有的行,並選擇當前。我經歷了所有行中循環,並使用布爾表達式
i = e.RowIndex
此如果你已經做了第1步,你仍然有一個很大的缺陷:
DataGridView1.CurrentRow不會返回之前選擇的行(這是相當危險的)。由於CurrentRow是隻讀的,你所要做的Me.CurrentCell = Me.Item(e.ColumnIndex, e.RowIndex)
Protected Overrides Sub OnCellMouseDown( ByVal e As System.Windows.Forms.DataGridViewCellMouseEventArgs) MyBase.OnCellMouseDown(e) Select Case e.Button Case Windows.Forms.MouseButtons.Right If Me.Rows(e.RowIndex).Selected = False Then For i As Integer = 0 To Me.RowCount - 1 SetSelectedRowCore(i, i = e.RowIndex) Next End If Me.CurrentCell = Me.Item(e.ColumnIndex, e.RowIndex) End Select End Sub
相關問題
- 1. 檢測從類選擇器中單擊鼠標右鍵?
- 2. 用鼠標右鍵單擊NSStatusItem
- 3. DataGridView鼠標選擇
- 4. Datagrid +鼠標右鍵單擊事件
- 5. 如何更改鼠標左鍵單擊和右鍵單擊選項?
- 6. 在dataGridView中右鍵點擊沒有選擇行
- 7. JavaScript的 - 在騎用鼠標右鍵單擊行爲
- 8. 允許單擊鼠標左鍵單擊鼠標右鍵或按Ctrl鍵單擊打開對話框
- 9. 如何將鼠標右鍵點擊事件動態創建datagridview
- 10. clearInterval同時單擊鼠標左鍵和右鍵不起作用
- 11. 鼠標:禁用右鍵和中鍵單擊
- 12. DataGrid中的右鍵單擊選擇
- 13. 用鼠標右鍵在Datagridview中選擇一行並顯示一個刪除它的菜單
- 14. Android的USB鼠標右鍵單擊正確的行爲(ICS)
- 15. C#的datagridview點擊右鍵選擇行和顯示菜單呼籲編輯表格的行選擇
- 16. 在PHPStorm中鼠標右鍵單擊快捷鍵
- 17. 我可以檢測鼠標左鍵嗎?或Ctrl +右鍵點擊?
- 18. 在WebBuild上點擊鼠標右鍵
- 19. 鼠標左鍵單擊與JavaScript中的右鍵單擊例程發生衝突
- 20. 如何禁用文本框內的鼠標右鍵單擊
- 21. AppleScript的複製和粘貼文件,用鼠標右鍵單擊
- 22. 如何禁用鼠標右鍵單擊網頁?
- 23. 需要禁用鼠標右鍵單擊Windows?
- 24. 禁用鼠標右鍵單擊圖像控件VB6
- 25. 在WInforms上禁用鼠標右鍵單擊
- 26. TreeNode右鍵單擊選項
- 27. 鼠標右鍵單擊並保存目標爲javascript
- 28. 右鍵單擊以選擇列表框中的項目
- 29. 在鼠標右鍵單擊事件中添加自定義菜單選項
- 30. 如何使用jQuery捕獲右鍵單擊選擇框選項?
這會變得非常慢,當行量高... – karlipoppins 2010-04-04 18:56:58
如果您的DataGridView多選有設置爲false,然後清除以前的選擇是不必要的。另外,如果命中不是有效的行/列,HitTestInfo可以返回HitTestInfo.Nowhere。 – stuartd 2010-10-21 14:28:21