2012-10-05 9 views
5

Więc jest to dość łatwe do sprawdzenia, czy komórka został kliknięty z:Wykrywanie CTRL + kliknięcie na komórki DataGridView w tej samej procedury obsługi zdarzenia

 DataGridView.CellClicked += cellClickedHandler; 

I jest to dość łatwe do sprawdzenia, czy klawisz został naciśnięty z:

 DataGridView.KeyDown += keyPressedHandler; 

Zastanawiam się, w jaki sposób mogę połączyć te dwie funkcje w jedną? Chciałbym wykonać konkretną akcję, gdy kontrolka użytkownika kliknie komórkę i o ile mogę powiedzieć, procedury obsługi zdarzeń dla tych zdarzeń są dwie unikalne, niezależne funkcje i parametry przekazane do cellClickedHandler nie pozwalają mi uzyskać stanu klawiatury i wszelkich naciśnięć przycisków, które mogą być uruchamiane w połączeniu z kliknięciem myszą.

+1

Odpowiedź na [podobne pytanie] (http://stackoverflow.com/a/515118/292067) powinna ci pomóc. – jswolf19

+0

Nie miałem pojęcia, że ​​klasa kontroli istnieje, dzięki! Biorę to wizualne C# po jednej rzeczy na raz. Wiele wyszukiwałem w Google i nic nie wymyśliło zapytania podobnego do mojego pytania, więc mam nadzieję, że teraz ludzie mogą sami skierować się do odpowiedzi. Dzięki! – anon58192932

Odpowiedz

5
private void cellClicked(object sender, DataGridViewCellMouseEventArgs e) 
    { 
     if(e.Button == MouseButtons.Right) // right click 
     { 
      if (Control.ModifierKeys == Keys.Control) 
       System.Diagnostics.Debug.Print("CTRL + Right click!"); 
      else 
       System.Diagnostics.Debug.Print("Right click!"); 
     } 
     if (e.Button == MouseButtons.Left) // left click 
     { 
      if (Control.ModifierKeys == Keys.Control) 
       System.Diagnostics.Debug.Print("CTRL + Left click!"); 
      else 
       System.Diagnostics.Debug.Print("Left click!"); 
     } 
    } 
+0

Dzięki @ jswolf19 za skierowanie mnie w stronę odpowiedniego kodu – anon58192932

+1

Uważaj, ponieważ sposób, w jaki napisałeś kod ctrl + shift + kliknięcie, ctrl + alt + kliknięcie i ctrl + shift + alt + kliknięcie nie zarejestruje się. To może być lub może nie być zachowanie, które chcesz^_^ – jswolf19

+0

Należycie zauważyłem, dzięki! – anon58192932

Powiązane problemy