Tab Control

lunedì 27 febbraio 2006 - 18.38

device78 Profilo | Junior Member

Salve.
Vorrei usare questo controllo ma non l'ho mai usato è ho un problema.
Devo realizzare una procedura fatta di tre passi distinti quindi aggiungo tre pagine.
Il passaggio da un apgina all'altra deve avvenire solo con la pressione di un pulsante da me gestito.
Come fare per "disabilitare" il click del mause che ti permette di passare da un pagina all'altra cliccando sul nome della pagina stessa in alto?
Spero di essermi spiegato.
grazie

Ciciu Profilo | Senior Member

Ciao.
Provo a risponderTi io, sperando che qualcuno più esperto in materia veda la risposta e possa, eventualmente, correggere qualche errore.

Dunque, il TabControl è un oggetto, e come tale risponde a tanti eventi, che sono i "delegates" definiti nella classe... Ma, nel Tuo programma, devi "ridefinire" questi delegates, per fare in modo che l'oggetto che hai disegnato sulla maschera risponda all'evento.

Nel costruttore della classe Form (IntializeComponent) devi aggiungere queste righe, che Ti permetteranno di gestire due eventi associati all'ggetto, ovvero la selezione di un tab (quindi DURANTE la selezione) e il cambio di tab selezionato (DOPO averlo selezionato).

this.tabControl1.SelectedIndexChanged += new EventHandler(tabControl1_SelectedIndexChanged);
this.tabControl1.Selecting += new TabControlCancelEventHandler(tabControl1_Selecting);

Poi, nella Tua form, dovrai inserire i metodi che gestiranno questi eventi :

void tabControl1_Selecting(object sender, TabControlCancelEventArgs e)
{
TabControl tc = (TabControl)sender;
if (tc.SelectedIndex > 2) e.Cancel = true;

}

void tabControl1_SelectedIndexChanged(object sender, EventArgs e)
{
if (this.tabControl1.SelectedIndex > 2) tabControl1.SelectedIndex = 1;
}

Il primo è più fine, nel senso che annulla la richiesta dell'utente che vuole selezionare un tab di indice superiore a 1. Il secondo, un po' meno bello, Ti riporta sul tab #1 se ne hai selezionato uno superiore a quello di indice 2. Quest'ultima possibilità è meno bella da usare, poiché vedrai il controllo "sfarfallare" : si posiziona effettivamente sul tab selezionato, per tornare indietro.

La prima mi sempbra un po' più carina...

Ciao
fg
Fabio G
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5