Salva a tutti, mi sono appena iscritto.
Mi sto avvicinando alla programazione in vb.net (provengo da vba di excel). Sto sviluppando dei piccoli software di calcolo.
Ho il seguente problema:
ho realizzato un form principale e dei sottoform di richiamo per specificare determinate caratteristiche.
In un Form ho definito due combobox che ho compilato al seguente modo:
Private Sub Form2_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Me.ComboBox1.Items.Add("Muratura in pietrame disordinata (ciottoli, pietre erratiche e irregolari)")
Me.ComboBox1.Items.Add("Muratura a conci sbozzati, con paramento di limitato spessore e nucleo interno")
Me.ComboBox1.Items.Add("Muratura in pietre a spacco con buona tessitura")
Me.ComboBox1.Items.Add("Muratura a conci di pietra tenera (tufo, calcarenite, ecc.)")
Me.ComboBox1.Items.Add("Muratura a blocchi lapidei squadrati")
Me.ComboBox1.Items.Add("Muratura in mattoni pieni e malta di calce")
Me.ComboBox1.Items.Add("Muratura in mattoni semipieni con malta cementizia (es. doppio UNI foratura < 40%)")
Me.ComboBox1.Items.Add("Muratura in blocchi laterizi semipieni, (perc. foratura < 45%)")
Me.ComboBox1.Items.Add("Muratura in blocchi laterizi semipieni, con giunti verticali a secco (perc. foratura < 45%)")
Me.ComboBox1.Items.Add("Muratura in blocchi di calcestruzzo o argilla espansa (perc. foratura tra 45% e 65%)")
Me.ComboBox1.Items.Add("Muratura in blocchi di calcestruzzo semipieni (foratura < 45%)")
Me.ComboBox2.Items.Add("Livello di Conoscenza Limitato LC1")
Me.ComboBox2.Items.Add("Livello di Conoscenza Adeguato LC2")
Me.ComboBox2.Items.Add("Livello di Conoscenza Accurato LC3")
End Sub
Sempre all'interno dello stesso form ho creato delle text box da compilare in base alla selezione delle due combobox.
Private Sub ComboBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox1.SelectedIndexChanged
If ComboBox1.SelectedIndex = 0 Then
TextBox2.Text = Format(100, "0.00")
TextBox8.Text = Format(180, "0.00")
TextBox10.Text = Format(2.0, "0.00")
TextBox9.Text = Format(3.2, "0.00")
TextBox12.Text = Format(690, "0.00")
TextBox11.Text = Format(1050, "0.00")
TextBox14.Text = Format(230, "0.00")
TextBox13.Text = Format(350, "0.00")
TextBox16.Text = Format(19, "0.00")
ElseIf ComboBox1.SelectedIndex = 1 Then
TextBox2.Text = Format(200, "0.00")
TextBox8.Text = Format(300, "0.00")
TextBox10.Text = Format(3.5, "0.00")
TextBox9.Text = Format(5.1, "0.00")
TextBox12.Text = Format(1020, "0.00")
TextBox11.Text = Format(1440, "0.00")
TextBox14.Text = Format(340, "0.00")
TextBox13.Text = Format(480, "0.00")
TextBox16.Text = Format(20, "0.00")
ElseIf ComboBox1.SelectedIndex = 2 Then
TextBox2.Text = Format(260, "0.00")
TextBox8.Text = Format(380, "0.00")
TextBox10.Text = Format(5.6, "0.00")
TextBox9.Text = Format(7.4, "0.00")
TextBox12.Text = Format(1500, "0.00")
TextBox11.Text = Format(1980, "0.00")
TextBox14.Text = Format(500, "0.00")
TextBox13.Text = Format(660, "0.00")
TextBox16.Text = Format(21, "0.00")
ElseIf ComboBox1.SelectedIndex = 3 Then
TextBox2.Text = Format(140, "0.00")
TextBox8.Text = Format(240, "0.00")
TextBox10.Text = Format(2.8, "0.00")
TextBox9.Text = Format(4.2, "0.00")
TextBox12.Text = Format(900, "0.00")
TextBox11.Text = Format(1260, "0.00")
TextBox14.Text = Format(300, "0.00")
TextBox13.Text = Format(420, "0.00")
TextBox16.Text = Format(16, "0.00")
ElseIf ComboBox1.SelectedIndex = 4 Then
TextBox2.Text = Format(600, "0.00")
TextBox8.Text = Format(800, "0.00")
TextBox10.Text = Format(9.0, "0.00")
TextBox9.Text = Format(12.0, "0.00")
TextBox12.Text = Format(2400, "0.00")
TextBox11.Text = Format(3200, "0.00")
TextBox14.Text = Format(780, "0.00")
TextBox13.Text = Format(940, "0.00")
TextBox16.Text = Format(22, "0.00")
ElseIf ComboBox1.SelectedIndex = 5 Then
TextBox2.Text = Format(240, "0.00")
TextBox8.Text = Format(400, "0.00")
TextBox10.Text = Format(6.0, "0.00")
TextBox9.Text = Format(9.2, "0.00")
TextBox12.Text = Format(1200, "0.00")
TextBox11.Text = Format(1800, "0.00")
TextBox14.Text = Format(400, "0.00")
TextBox13.Text = Format(600, "0.00")
TextBox16.Text = Format(18, "0.00")
ElseIf ComboBox1.SelectedIndex = 6 Then
TextBox2.Text = Format(500, "0.00")
TextBox8.Text = Format(800, "0.00")
TextBox10.Text = Format(24, "0.00")
TextBox9.Text = Format(32, "0.00")
TextBox12.Text = Format(3500, "0.00")
TextBox11.Text = Format(5600, "0.00")
TextBox14.Text = Format(875, "0.00")
TextBox13.Text = Format(1400, "0.00")
TextBox16.Text = Format(15, "0.00")
ElseIf ComboBox1.SelectedIndex = 7 Then
TextBox2.Text = Format(400, "0.00")
TextBox8.Text = Format(600, "0.00")
TextBox10.Text = Format(30, "0.00")
TextBox9.Text = Format(40, "0.00")
TextBox12.Text = Format(3600, "0.00")
TextBox11.Text = Format(5400, "0.00")
TextBox14.Text = Format(1080, "0.00")
TextBox13.Text = Format(1620, "0.00")
TextBox16.Text = Format(12, "0.00")
ElseIf ComboBox1.SelectedIndex = 8 Then
TextBox2.Text = Format(300, "0.00")
TextBox8.Text = Format(400, "0.00")
TextBox10.Text = Format(10, "0.00")
TextBox9.Text = Format(13, "0.00")
TextBox12.Text = Format(2700, "0.00")
TextBox11.Text = Format(3600, "0.00")
TextBox14.Text = Format(810, "0.00")
TextBox13.Text = Format(1080, "0.00")
TextBox16.Text = Format(11, "0.00")
ElseIf ComboBox1.SelectedIndex = 9 Then
TextBox2.Text = Format(150, "0.00")
TextBox8.Text = Format(200, "0.00")
TextBox10.Text = Format(9.5, "0.00")
TextBox9.Text = Format(12.5, "0.00")
TextBox12.Text = Format(1200, "0.00")
TextBox11.Text = Format(1600, "0.00")
TextBox14.Text = Format(300, "0.00")
TextBox13.Text = Format(400, "0.00")
TextBox16.Text = Format(12, "0.00")
ElseIf ComboBox1.SelectedIndex = 10 Then
TextBox2.Text = Format(300, "0.00")
TextBox8.Text = Format(440, "0.00")
TextBox10.Text = Format(18, "0.00")
TextBox9.Text = Format(24, "0.00")
TextBox12.Text = Format(2400, "0.00")
TextBox11.Text = Format(3520, "0.00")
TextBox14.Text = Format(600, "0.00")
TextBox13.Text = Format(880, "0.00")
TextBox16.Text = Format(14, "0.00")
End If
End Sub
Private Sub ComboBox2_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox2.SelectedIndexChanged
If ComboBox2.SelectedIndex = 0 Then
TextBox3.Text = TextBox2.Text
TextBox3.Enabled = False
TextBox4.Text = TextBox10.Text
TextBox4.Enabled = False
TextBox5.Text = (Val(TextBox12.Text) + Val(TextBox11.Text)) / 2
TextBox5.Enabled = False
TextBox6.Text = (Val(TextBox14.Text) + Val(TextBox13.Text)) / 2
TextBox6.Enabled = False
TextBox7.Text = TextBox16.Text
TextBox7.Enabled = False
ElseIf ComboBox2.SelectedIndex = 1 Then
TextBox3.Text = (Val(TextBox2.Text) + Val(TextBox8.Text)) / 2
TextBox3.Enabled = False
TextBox4.Text = (Val(TextBox10.Text) + Val(TextBox9.Text)) / 2
TextBox4.Enabled = False
TextBox5.Text = (Val(TextBox12.Text) + Val(TextBox11.Text)) / 2
TextBox5.Enabled = False
TextBox6.Text = (Val(TextBox14.Text) + Val(TextBox13.Text)) / 2
TextBox6.Enabled = False
TextBox7.Text = TextBox16.Text
TextBox7.Enabled = False
Else ComboBox2.SelectedIndex = 2
MsgBox("Inserisci valori derivanti dalle prove sperimentali")
TextBox3.Enabled = True
TextBox4.Enabled = True
TextBox5.Enabled = True
TextBox6.Enabled = True
TextBox7.Enabled = True
End If
End Sub
Quando seleziono un item della prima combobox e poi un item della seconda combobox, i valori nelle textbox che visualizzo sono corretti.
Il problema mi si pone, quando, lasciando fissa la selezione della seconda combo box e cambiando la selezione delle prima combobox, i valori delle textbox non cambiano automaticamente (devo ricliccare sull'item della seconda combobox).
Sapete come posso fare per poter far aggiornare automaticamente i valori delle textbox? Devo ciclare le combobox o sare un evento text change?
Vi ringrazio anticipatamente