Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    [VB 2010] Problema codice confronti (overflow)

    Salve ragazzi! Avrei bisogno di una dritta sul seguente codice in VB. Prima vi voglio spiegare semplicemente la mia intenzione: Ho tre caselle NumericUpDown e devo far si che se Il RadioButton [chiamato Equilatero] è selezionato e cambio uno qualsiasi dei tre valori NumericUpDown [Chiamati rispettivamente NumLato1; NumLato2_Ipo; NumBase], vorrei che tutti e tre acquistassero lo stesso valore di quello cambiato, e per far questo attuo un confronto tra i tre valori per verificare quello cambiato.
    Nel codice che ho scritto, però, se provo a cambiare un valore in debug, dice che c'è un problema di Overflow...


    codice:
       Private Sub Cambio(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles NumLato2_Ipo.ValueChanged, NumLato1.ValueChanged, NumBase_Cat2.ValueChanged
    
            If Equilatero.Checked = True Then
                If NumLato1.Value = NumLato2_Ipo.Value Then
                    NumLato1.Value = NumBase_Cat2.Value
                    NumLato2_Ipo.Value = NumBase_Cat2.Value
                Else
                    If NumLato1.Value = NumBase_Cat2.Value Then
                        NumLato1.Value = NumLato2_Ipo.Value
                        NumBase_Cat2.Value = NumLato2_Ipo.Value
                    End If
                End If
            End If
    
        End Sub
    Qualche Buon anima può spiegarmi gentilmente cosa sbaglio, ed, eventualmente, correggermi?

    PS: grazie in anticipo!
    PS2: lo so, ci so ancora fare poco, ma ho voglia di poter imparare, anche tramite i miei errori!

  2. #2
    da dove esce quella sub?

    Io mi servirei di tre sub "originali" _ValueChanged generate ognuna dai singoli controlli, in modo da sapere immediatamente quale è quello che a cui è stato effettivamente cambiato il valore, in quanto è l' unico a generare l' evento:

    codice:
        Private Sub NumLato1_ValueChanged(ByVal sender As System.Object, _
                          ByVal e As System.EventArgs) Handles NumLato1.ValueChanged
    
          If Equilatero.Checked = True Then
                 NumLato2_Ipo.Value = NumLato1.Value
                 NumBase_Cat2.Value = NumLato1.Value
          End  If
    
    
        End Sub
    Ripeti per gli altri due controlli.
    .

  3. #3
    Verissimo! La soluzione era molto più semplice di quella che provavo!
    Devo ricordarmi di pensare in semplice la prossima volta.

    Grazie mille!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.