|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Sep 2004
Messaggi: 3967
|
[VB.NET]Caricamento dati una sola volta
Ciao a tutti
![]() Il mio problema è questo: Ho degli oggetti che vengono caricati a runtime su di un form. Alcuni di questi oggetti sono legati ad una fonte dati e da essa traggono determinati valori. Ora mi succede questo: Sul form c'è un oggetto di tipo TabControl. In corrispondenza del TabPage 1, devo caricare determinati dati. Mi sembrava semplice utilizzando l'evento selected index changed... ...ma, ovviamente il codice che ho scritto viene eseguito ogni volta che questo tab viene selezionato e, di conseguenza, se l'utente aveva variato dei valori dal form, si ritrova con i valori precedenti al cambio tab. Mi sono detto quindi, vabbè, la funzione la eseguo durante il caricamento del form.... Ovviamente, non funziona, cioè, se lo stesso codice scritto nell'evento selectedIndexChanged lo metto nel Form_Load non ha alcun effetto. il codice incriminato è: Codice:
Sub BindColors(ByVal panel As Panel, ByVal idColor As Integer) Try Dim ds As New IndexColorTableAdapter.GetDescription For Each gp As GroupBox in panel.Controls For Each txt As TextBox in gp.Controls Dim tblIndexColors As New DataSet tblIndexColors.Tables.Add(ds.GetDataById(idColor, g.Text.SubString(0, 2)) txt.DataBindings.Add("Text", tblIndexColors.Tables(0), "Descrizione") txt.DataBindings.Remove(txt.DataBindings("Text")) Next Next Catch ex As Exception 'blabla End Try ![]() RaouL.
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek ![]() |
![]() |
![]() |
![]() |
#2 | ||
Senior Member
Iscritto dal: Dec 2004
Messaggi: 3210
|
Quote:
Quote:
|
||
![]() |
![]() |
![]() |
#3 | ||
Senior Member
Iscritto dal: Sep 2004
Messaggi: 3967
|
Quote:
![]() Quote:
![]()
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek ![]() |
||
![]() |
![]() |
![]() |
#4 | |
Senior Member
Iscritto dal: Dec 2004
Messaggi: 3210
|
Quote:
Inoltre non hai considerato l'ipotesi di avere un DataSet in locale, che prenda ogni modifica utente e poi una volta sola aggiorni in blocco le modifiche a DB... Comunque se quel codice dici che funziona sul TabChange, una soluzione "furbetta" ce l'hai già a portata di mano : all'avvio del Form forzi la selezione del Tab via codice, una volta sola ( definendo e poi controllando un'apposita variabile Boolean a livello di Form... ). Allora : Codice:
Private Sub Form_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load TabControl1.SelectTab("TabPage2") TabControl1.SelectTab("TabPage1") End Sub Codice:
Private Sub TabControl1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles TabControl1.SelectedIndexChanged If TabControl1.SelectedTab.Name = "TabPage1" Then MsgBox("Hai selezionato TabPage1") End If End Sub ![]() |
|
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Sep 2004
Messaggi: 3967
|
Ciao
![]() Ho risolto in un altro modo credo abbastanza semplice. Ho impostato una variabile di tipo intero alla selezione del tab. Una volta che il tab è stato selezionato, la variabile assume valore '1'. Ogni volta che l'utente rientra in quel tab, se la variabile è uno allora i dati non vengono più caricati. Ho fatto diverse prove e sembra reggere. Grazie ancora. RaouL.
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek ![]() |
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Dec 2004
Messaggi: 3210
|
Già.
![]() Più o meno siamo arrivati alla stessa soluzione "furba"... ![]() |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 20:15.