如何在右鍵單擊上選擇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. 用鼠標右鍵選擇dataGridView中的行
- 2. 檢測從類選擇器中單擊鼠標右鍵?
- 3. 選擇一個卡在鼠標右鍵單擊Infragistics XamDataCards
- 4. g_signal_connect用於單擊鼠標右鍵?
- 5. 用鼠標右鍵單擊NSStatusItem
- 6. 右鍵單擊以選擇文本JTextPane
- 7. DataGridView鼠標選擇
- 8. DataGridView和右鍵單擊
- 9. 調用從鍵盤右鍵單擊鼠標右箭頭的keydown
- 10. 如何用鼠標右鍵點擊選擇textarea中的文字
- 11. 想要鼠標右鍵單擊ToolStripMenuItem - C#
- 12. 右鍵單擊鼠標事件錯誤
- 13. 鼠標右鍵單擊WindowsUI的DevExpress
- 14. Datagrid +鼠標右鍵單擊事件
- 15. 鼠標右鍵單擊事件右鍵單擊事件調用取消過程
- 16. 使用擊鍵選擇DataGridView行
- 17. 無法用鼠標右鍵單擊並使用Selenium Webdriver選擇一個值
- 18. 當我按下鼠標右鍵時,如何在datagridview中選擇一行?
- 19. 如何更改鼠標左鍵單擊和右鍵單擊選項?
- 20. 在dataGridView中右鍵點擊沒有選擇行
- 21. JavaScript的 - 在騎用鼠標右鍵單擊行爲
- 22. 在DataGridView中禁用右鍵單擊ContextMenuStrip
- 23. 允許單擊鼠標左鍵單擊鼠標右鍵或按Ctrl鍵單擊打開對話框
- 24. Jtable中單元格的行爲(單擊鼠標右鍵)
- 25. 如何將鼠標右鍵點擊事件動態創建datagridview
- 26. 鼠標:禁用右鍵和中鍵單擊
- 27. clearInterval同時單擊鼠標左鍵和右鍵不起作用
- 28. 檢測鼠標點擊在dataGridView中選擇一行
- 29. DataGridView多行選擇清除鼠標左鍵拖放
- 30. 只允許通過在ListBox中單擊鼠標右鍵來選擇項目
這會變得非常慢,當行量高... – karlipoppins 2010-04-04 18:56:58
如果您的DataGridView多選有設置爲false,然後清除以前的選擇是不必要的。另外,如果命中不是有效的行/列,HitTestInfo可以返回HitTestInfo.Nowhere。 – stuartd 2010-10-21 14:28:21