2010-09-19 12 views
8

Sto facendo apparire una striscia di menu contestuale durante il clic destro di una scheda selezionata o deselezionata nella tabstrip di un controllo scheda winform. Sta per chiudersi e chiudere tutto, ma questo per ora. Ad ogni modo, devo essere in grado di catturare la scheda su cui il mouse è finito quando viene premuto il tasto destro del mouse. Qualcuno sa come?Come faccio a sapere di quale scheda sto facendo clic con il pulsante destro su winforms tabcontrol?

Un'altra soluzione che accetto è quella che seleziona la scheda deselezionata con un clic destro prima che venga visualizzato il menu di scelta rapida.

risposta

16

Nel vostro evento clic del mouse è possibile aggiungere questo codice per trovare, se è il vostro tabs tabcontrol

for (int i = 0; i < tabs.TabCount; ++i) { 
    if (tabs.GetTabRect(i).Contains(e.Location)) { 
     //tabs.Controls[i]; // this is your tab 
    } 
} 
+0

questo sembra essere quello che voglio, lo ascolterò/accetto quando lo faccio funzionare! –

+0

funziona, grazie amico! –

+0

@IsaacB: np, gl con il resto :) – Patrick

0

Il parametro sender del gestore di eventi di solito ti dà l'oggetto che si è fatto clic su.

void whatever_OnClick(object sender, EventArgs e) { 
    var tab = sender as TabControlClassHere; 
} 
+1

Mi dice che il controllo a schede su cui ho fatto clic, il che non aiuta. C'è solo un tabcontrol! Grazie comunque per il suggerimento! –

4

Questo potrebbe aiutare, si coglie la posizione del tasto destro del mouse e se è sul rettangolo di qualsiasi scheda, quella scheda saranno selezionati e ottenere di menu di destra per essere mostrato

private void tabControl1_MouseClick(object sender, MouseEventArgs e) 
{ 
     if (e.Button == MouseButtons.Right) 
    { 
      for (int i = 0; i < tabs.TabCount; ++i) 

       { 

       if (tabs.GetTabRect(i).Contains(e.Location)) 
        { 

       tabControl1.SelectTab(i); 

       this.contextMenuStrip1.Show(this.tabControl1, e.Location); 

        } 

       } 
    } 
} 

Buon divertimento :)

Problemi correlati