Bloccare un tabcontrol su condizione

martedì 18 maggio 2010 - 13.41

giaarcix Profilo | Newbie

Ciao, ho un problema banale in vb.net 2005 che vi semplifico così:

ho un TabControl con due schede, in ciascuna delle quali ci sono dei textbox ed un bottone "salva".
Vorrei fare un banale controllo in modo che, se si modificano dei valori nelle textbox e poi, senza cliccare su "salva", si clicca per errore su un'altra scheda la scheda, mi avverta con un "attenzione cambiando scheda perderai le modifiche non salvate. Prosegui?". Ovviamente se dico di no la scheda non deve cambiare.
Il problema è che se io inserisco questo controllo nel "TabControl1_SelectedIndexChanged", indipendentemente da ciò che rispondo, la scheda è già cambiata!

Mi servirebbe qualche cosa tipo (invento) TabControl1_BeforeIndexChanged.

Qualcuno ha qualche idea?
Grazie mille per le sempre pronte risposte,

Giacomo

AntCiar Profilo | Expert

Ciao.

Va bene come hai fatto.
Devi solo aggiungere questo sulla parte relativa alla risposta 'No'

me.TabControl1.SelectedTab = me.TabPage1 (tabPage1 è la TabPage su cui deve rimanere fermo)

ovviamente devi sostituire i nomi giusti.

Ciao


Cristian Barca

giaarcix Profilo | Newbie

Grazie mille,
ho trovato un metodo migliore. Ovviamente dopo aver cercato per ore... dieci minuti dopo aver postato il mio problema ho trovato la soluzione che credo sia migliore.
Ho inserito il msgbox nella sub "TabControl1_Selecting" e, nel caso la risposta al mio "prosegui" sia negativa (quindi devo restare sulla scheda dove sono senza cambiare) lancio l'istruzione:

e.Cancel = True

Così facendo la seconda scheda non si carica proprio.
Invece lanciando l'istruzione TabControl1.SelectedTab = MIATAB ho un fastidioso "sfarfallamento" nel senso che sembra che la seconda scheda venga caricata per un attimo e poi venga ricaricata la prima!
Spero possa servire anche ad altri!

Giacomo
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